Today — ten crates are on crates.io at 2.1.0 and no workflow runs cargo-semver-checks (zero mentions across .github/workflows). A breaking change to launchbound-space's KernelSpec or launchbound-prune's Verdict ships without a signal. Also, [workspace.dependencies] pins the path crates at version = "2.0.0" (Cargo.toml:36–43) while workspace.package.version is 2.1.0 — harmless for resolution, wrong as a record.
Fix. A semver job on every PR with --release-type patch forced (an inferred type skips every check on a bump), per published crate, baseline pinned and bumped in the release PR; a breaking label as the exception. Align the internal version pins with the workspace version and add a test that they match.
Done when
Today — ten crates are on crates.io at 2.1.0 and no workflow runs
cargo-semver-checks(zero mentions across.github/workflows). A breaking change tolaunchbound-space'sKernelSpecorlaunchbound-prune'sVerdictships without a signal. Also,[workspace.dependencies]pins the path crates atversion = "2.0.0"(Cargo.toml:36–43) whileworkspace.package.versionis 2.1.0 — harmless for resolution, wrong as a record.Fix. A
semverjob on every PR with--release-type patchforced (an inferred type skips every check on a bump), per published crate, baseline pinned and bumped in the release PR; abreakinglabel as the exception. Align the internal version pins with the workspace version and add a test that they match.Done when
pub fnfromlaunchbound-spacefails CI even with a manifest bump in the same PR.version =pins equalworkspace.package.version, enforced by a test.