Skip to content

Point the OWID submodule at the date range fix - #28

Merged
jwrosewell merged 2 commits into
mainfrom
chore/owid-date-range
Aug 31, 2026
Merged

Point the OWID submodule at the date range fix#28
jwrosewell merged 2 commits into
mainfrom
chore/owid-date-range

Conversation

@jwrosewell

@jwrosewell jwrosewell commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

What changed

The owid-rust submodule moves from bbdb7aa to 86181da2, the merged commit on main of the 51Degrees fork. That commit (SWAN-community/owid-rust#5) adds tests proving that the largest four byte minute count the wire format allows, 0xFFFFFFFF, which is 15 February 10186, is inside chrono's date range, and tightens the comment in parse.rs that says so. The Rust reader therefore needs no guard where the .NET and Python readers now refuse a count past the end of the year 9999 with ImplementationCapacityExceeded. Nothing else changed in the library since the previous pin, which the hardening change (#27) set. The source under fodid/src/owid is copied from the submodule by ci/copy-owid-source.ps1 at build time and is not tracked, so the pin is the only library change in this repository.

In this repository, fodid/tests/fodid_tests.rs gains one test. A signed envelope whose minute count is 0xFFFFFFFF parses through FodId::from_base64 without error, the date read is 04:15 on 15 February 10186, and the match key is intact.

Verification

All run with CARGO_TARGET_DIR outside the checkout after ci/copy-owid-source.ps1 copied the source at 86181da2.

  • cargo fmt --all -- --check is clean.
  • cargo clippy -p fodid -p fiftyone-fodid-cloud --all-targets --all-features -- -D warnings reports no warnings.
  • cargo test -p fodid -p fiftyone-fodid-cloud --all-features: fodid 24 unit, 38 integration (one new) and 19 documentation tests passed, fiftyone-fodid-cloud 20 unit, 4 integration and 2 documentation tests passed, and the two live cloud tests are ignored as usual. No failures.
  • cargo build -p fiftyone-fodid-cloud --no-default-features --target wasm32-wasip1 succeeded.
  • cargo package --list -p fodid lists fodid/src/owid/*.rs with the copied NOTICE and LICENSE, and cargo package -p fodid --allow-dirty packaged 24 files (258.6 KiB, 65.9 KiB compressed) and built the packaged crate, which is what a push to main publishes.

Publishing

Versions. Both crates move from 4.5.2 to 4.5.3 in this pull request. The publish workflow runs on every push to main and skips versions crates.io already holds, so merging this publishes fodid 4.5.3 and fiftyone-fodid-cloud 4.5.3, the first versions carrying the OWID source inside the fodid crate rather than depending on an owid crate. cargo package --list -p fodid shows the vendored src/owid files, NOTICE and LICENSE in the package.

Produced with AI assistance under James Rosewell's direction and needs human review.

owid-rust moves from bbdb7aa to 86181da2, the merged commit on main of
the 51Degrees fork. That commit adds tests proving that the largest
four byte minute count the wire format allows, 0xFFFFFFFF, which is
15 February 10186, is inside chrono's date range, so the Rust reader
needs no guard where the .NET and Python readers now refuse a count
past the end of the year 9999. The library source under fodid/src/owid
is copied from the submodule by ci/copy-owid-source.ps1 and is not
tracked, so the pin is the only library change here. Nothing else
changed in the library since the previous pin.

fodid_tests proves through FodId::from_base64 that a 51Did envelope
with minute count 0xFFFFFFFF parses without error and that the date
read is 04:15 on 15 February 10186.
The publish workflow runs on every push to main and skips versions that
crates.io already holds, and both crates are 4.5.2 there, so the
hardened reader and the match key rename would never publish without
the version moving. These are the first versions that carry the OWID
source inside the fodid crate rather than depending on an owid crate.
@jwrosewell
jwrosewell merged commit 30835a6 into main Aug 31, 2026
4 checks passed
@jwrosewell
jwrosewell deleted the chore/owid-date-range branch August 31, 2026 15:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant