Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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.
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
46 changes: 46 additions & 0 deletions docs/releases/v0.1.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
Five fixes, one of which the station found by photographing itself.

## The window can take its own picture

`--screenshot <path>` 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.
Loading