diff --git a/Cargo.toml b/Cargo.toml index 010d6b7..3f77042 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ members = ["crates/*", "xtask"] exclude = ["crates/xtce-py"] [workspace.package] -version = "0.1.0" +version = "0.1.1" edition = "2024" rust-version = "1.85" license = "MIT OR Apache-2.0" diff --git a/docs/releases/v0.1.1.md b/docs/releases/v0.1.1.md new file mode 100644 index 0000000..58ad288 --- /dev/null +++ b/docs/releases/v0.1.1.md @@ -0,0 +1,33 @@ +Three XTCE constructs stopped being read as if they were not there. + +## What was wrong + +This crate's claim is that anything outside its subset is refused **by name**, never quietly +skipped. Three entry constructs were skipped: + +* `` was never read. The string did not appear anywhere in the crate, so an + entry that is present only when a condition holds was decoded as though it always is. +* A `` whose `` is a `` fell through a parse that only looks + for ``, which left it indistinguishable from an entry with no `` at + all. It decoded exactly once. +* A `` or a `` on an entry naming an array or an + aggregate was discarded, because the expansion into one field per leaf returned before + either was parsed. + +Skipping an entry is worse than it sounds: it keeps its place in the container, so its bits are +still claimed and everything behind it is still read at an offset that assumes them. The values +that come out are wrong rather than missing, and nothing says so. + +All three are `EntryKind::Unsupported` now — reported at load, and left in place so a caller +sees something undecodable where the bits are rather than a container quietly one entry short. + +None of the nine bundled definitions uses any of them, which is why the differential suite +agreed with the reference throughout and still does. It is the shape of gap a suite built from +real mission files cannot close. + +## Also + +`SUPPORTED.md` had four rows that disagreed with the code, including `ArrayParameterRefEntry` +listed as unsupported in one table and as handled in another. It matches now. + +182 tests. All nine differential cases agree with `space_packet_parser`, as before.