Skip to content

v0.2.1 — docs.rs build fix, and the gates that missed it

Choose a tag to compare

@dmitryk-cf dmitryk-cf released this 24 Aug 14:16
· 22 commits to main since this release

A patch over v0.2.0. The crates themselves were sound — every one installs and builds as published — but canton-ledger 0.2.0 shows its documentation as failed to build on docs.rs, and that cannot be fixed for a version already out.

What broke

Two #[cfg_attr(docsrs, doc(cfg(feature = "ws")))] attributes went in without the crate declaring #![cfg_attr(docsrs, feature(doc_cfg))], which that attribute requires. cargo doc never sets docsrs, so the attributes compiled out and every gate stayed green everywhere. docs.rs does set it, on nightly, and is therefore the first place the code is built as written.

The gates that let it through

A docsrs job now builds the workspace the way docs.rs will.

Adding it surfaced a second problem: it failed on stable while asking for nightly. rust-toolchain.toml pins the channel for anything run inside the checkout and overrides the toolchain CI installs — rustup says so in its own log. The MSRV job had the same defect and always had, so rust-version = "1.88" had never actually been checked. The claim holds, but nothing was establishing it. Both jobs now set RUSTUP_TOOLCHAIN, the override that beats the file.

cargo-semver-checks also grew from 5 crates to 11, now that the M2 crates have a published baseline to compare against.

Also

The README's compatibility table still called 0.2 unreleased when 0.2.0 was published, and the README is frozen into each crate's page at publish time — so it says so on crates.io for 0.2.0 and is corrected here. RELEASING.md gained the post-publish verification the pre-publish gate cannot do: cargo package runs --no-verify because verifying needs the siblings already on crates.io, which means the packaged artefact is first built by whoever installs it.

No API changes. Upgrading from 0.2.0 needs nothing.