From 528bdd05e185f7573d038f50d307516767a15e5f Mon Sep 17 00:00:00 2001 From: Maciej Myszkiewicz Date: Mon, 12 Oct 2026 16:08:03 +0200 Subject: [PATCH] chore: 0.1.1, against xtce-rs v0.1.1 The binary grew 124 848 bytes since the last release and the README said the old number, which is the kind of claim this page exists to not make. --- Cargo.lock | 18 ++++++++-------- Cargo.toml | 6 +++--- README.md | 4 ++-- docs/releases/v0.1.1.md | 46 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 14 deletions(-) create mode 100644 docs/releases/v0.1.1.md diff --git a/Cargo.lock b/Cargo.lock index 8335683..37a2d27 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3366,8 +3366,8 @@ checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" [[package]] name = "xtce-decode" -version = "0.1.0" -source = "git+https://github.com/RustSpaceLab/xtce-rs?rev=c9c780e805db686502f695f55b0c0f3de9afc90e#c9c780e805db686502f695f55b0c0f3de9afc90e" +version = "0.1.1" +source = "git+https://github.com/RustSpaceLab/xtce-rs?rev=17671eaf4ea8aa9fb17c096001b39ecd88e77059#17671eaf4ea8aa9fb17c096001b39ecd88e77059" dependencies = [ "thiserror 2.0.20", "xtce-model", @@ -3375,7 +3375,7 @@ dependencies = [ [[package]] name = "xtce-gs-cli" -version = "0.1.0" +version = "0.1.1" dependencies = [ "clap", "thiserror 2.0.20", @@ -3390,7 +3390,7 @@ dependencies = [ [[package]] name = "xtce-gs-core" -version = "0.1.0" +version = "0.1.1" dependencies = [ "thiserror 2.0.20", "xtce-decode", @@ -3399,7 +3399,7 @@ dependencies = [ [[package]] name = "xtce-gs-engine" -version = "0.1.0" +version = "0.1.1" dependencies = [ "serde", "serde_json", @@ -3413,7 +3413,7 @@ dependencies = [ [[package]] name = "xtce-gs-gui" -version = "0.1.0" +version = "0.1.1" dependencies = [ "eframe", "egui", @@ -3431,7 +3431,7 @@ dependencies = [ [[package]] name = "xtce-gs-link" -version = "0.1.0" +version = "0.1.1" dependencies = [ "thiserror 2.0.20", "tokio", @@ -3440,8 +3440,8 @@ dependencies = [ [[package]] name = "xtce-model" -version = "0.1.0" -source = "git+https://github.com/RustSpaceLab/xtce-rs?rev=c9c780e805db686502f695f55b0c0f3de9afc90e#c9c780e805db686502f695f55b0c0f3de9afc90e" +version = "0.1.1" +source = "git+https://github.com/RustSpaceLab/xtce-rs?rev=17671eaf4ea8aa9fb17c096001b39ecd88e77059#17671eaf4ea8aa9fb17c096001b39ecd88e77059" dependencies = [ "quick-xml 0.38.4", "thiserror 2.0.20", diff --git a/Cargo.toml b/Cargo.toml index 55d156b..cc33098 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ resolver = "3" members = ["crates/*"] [workspace.package] -version = "0.1.0" +version = "0.1.1" edition = "2024" # egui 0.35 sets this floor, not this project: `xtce-rs` and `xtce-flight` still declare 1.85 # and nothing here needs a newer language feature. Raise it only when a dependency forces it, @@ -27,8 +27,8 @@ xtce-gs-gui = { path = "crates/xtce-gs-gui", version = "0.1.0" } # # Bump both together, in the same commit as the change that needed them, and push `xtce-rs` # first — cargo cannot fetch a commit that is not on the remote. -xtce-model = { git = "https://github.com/RustSpaceLab/xtce-rs", rev = "c9c780e805db686502f695f55b0c0f3de9afc90e" } -xtce-decode = { git = "https://github.com/RustSpaceLab/xtce-rs", rev = "c9c780e805db686502f695f55b0c0f3de9afc90e" } +xtce-model = { git = "https://github.com/RustSpaceLab/xtce-rs", rev = "17671eaf4ea8aa9fb17c096001b39ecd88e77059" } +xtce-decode = { git = "https://github.com/RustSpaceLab/xtce-rs", rev = "17671eaf4ea8aa9fb17c096001b39ecd88e77059" } # Keep this list short and justified — see CONTRIBUTING.md rule 7. Every entry below names # the thing it does that this project will not do by hand. diff --git a/README.md b/README.md index 73241b6..125c969 100644 --- a/README.md +++ b/README.md @@ -28,9 +28,9 @@ One binary, and here is what that is worth measured rather than claimed: ```console $ cargo build --release -p xtce-gs-cli && ls -l target/release/xtce-gs -9928976 # 9.47 MiB, macOS x86_64, unstripped +10053824 # 9.59 MiB, macOS x86_64, unstripped $ strip target/release/xtce-gs && ls -l target/release/xtce-gs -8595272 # 8.20 MiB stripped +8704096 # 8.30 MiB stripped ``` Measured with rustc 1.99.0; the toolchain and the dependency tree both move these by a few diff --git a/docs/releases/v0.1.1.md b/docs/releases/v0.1.1.md new file mode 100644 index 0000000..92cc0a9 --- /dev/null +++ b/docs/releases/v0.1.1.md @@ -0,0 +1,46 @@ +Five fixes, one of which the station found by photographing itself. + +## The window can take its own picture + +`--screenshot ` on `run` and `replay` asks egui for the frame it was going to paint +anyway, writes a PNG and closes; `--screenshot-after` is how long the station gets to fill +first, because every plot is empty until packets arrive. The README has a picture of the +interface now, and the command that makes it again sitting under it. + +This was not a feature looking for a reason. A screen grabber cannot supply a reproducible +picture: macOS refuses screen recording outright to a process that is not an application +bundle, and does not error — it returns the desktop with every window missing. + +The first picture it took showed two bugs no test had. + +## What was wrong + +**The event log read "22 of 12 saved parameters are in this definition; the other +18446744073709551606 are kept".** `Layout::restore` counted mentions while its caller's +denominator counted the watch list, and every plotted parameter is in both — so the count +exceeded its own denominator and the subtraction wrapped. In a debug build that is a panic. + +**The packet counters drew underneath the `Pause` button.** The source label carries a whole +file URL with its query string, longer than everything else on the strip together. + +**The "… and N more, narrow the search" notice was drawn below the clip rect**, every time. An +operator searching a nine-thousand-parameter definition saw 512 rows and nothing to say the +other 8 981 existed, which reads as a search that found everything. + +**`--history` did nothing whenever a layout file existed** — which, since the bundled layout +started shipping, is always for the demo. The command line wins now, the way it does over a +config file everywhere else. + +**A headless pass whose source never opened exited 0.** `xtce-gs run --headless --record` under +a supervisor exited clean after a second having recorded nothing, and `Restart=on-failure` +never fired. A missing *definition* already exited 1, because it is opened on the caller's +thread; a missing *recording* exited 0, because it is opened one spawn later. Two spellings of +one mistake, split on something no operator can see. `Session::outcome` now says which ending +it was, and the two that are failures are reported as such. + +## Also + +Pinned to `xtce-rs` v0.1.1. The comments were thinned by about 450 lines, which changed no +behaviour and is in the history if you want to see what went. + +542 tests.