fix(ci): bump cargo-semver-checks to 0.50.0 for rustdoc JSON v60 - #709
fix(ci): bump cargo-semver-checks to 0.50.0 for rustdoc JSON v60#709Adomas Bekeras (AdomasBekeras) wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the repository’s pinned cargo-semver-checks version so SemVer checking continues to work with newer rustdoc JSON format versions (notably v60 from newer stable toolchains), avoiding tool parse errors being misreported as “potential breaking changes”.
Changes:
- Bump
cargo-semver-checkspin in anvil just recipes to0.50.0. - Bump the workspace-wide
CARGO_SEMVER_CHECKS_VERSIONinconstants.envto0.50.0to keep CI/release tooling aligned.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| justfiles/anvil/versions.just | Updates the anvil tool pin for cargo-semver-checks to 0.50.0. |
| constants.env | Updates CARGO_SEMVER_CHECKS_VERSION to 0.50.0 for CI/release script usage. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #709 +/- ##
=======================================
Coverage 100.0% 100.0%
=======================================
Files 563 563
Lines 61068 61068
=======================================
Hits 61068 61068 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
| cargo_mutants_version := "26.1.2" | ||
| cargo_nextest_version := "0.9.122" | ||
| cargo_semver_checks_version := "0.46.0" | ||
| cargo_semver_checks_version := "0.50.0" |
There was a problem hiding this comment.
it should be done in cargo-anvil
Managed by cargo-anvil. Update the corresponding template in the cargo-anvil
There was a problem hiding this comment.
ugh
The anvil-semver-check recipe pinned cargo-semver-checks 0.46.0, which reads rustdoc JSON v55/v56/v57. GitHub runners now ship Rust 1.98.0, whose rustdoc emits v60, so the tool aborted while parsing the JSON it had just generated. Because the recipe is advisory, every failure was rendered as a "Potential breaking changes detected" sticky comment listing each library crate, so SemVer checking was effectively off and every PR carried a misleading warning. 0.50.0 reads v57, v60 and v61, covering both the runner's stable and the 1.96.1 toolchain the main.yml semver job pins. Bump constants.env to the same version so the release scripts and the anvil recipe agree. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
8eff2f0 to
c203496
Compare
Problem
anvil-semver-checkfails for every library crate on every PR:justfiles/anvil/versions.justpinnedcargo-semver-checks0.46.0, which reads rustdoc JSON v55/v56/v57. The recipe does not pin a stable toolchain, so it uses the runner default — now Rust 1.98.0, whose rustdoc emits v60. The tool aborts while parsing the JSON it just produced.The recipe is advisory, so the crash was not surfaced as a failure. Instead each tool error was collected as a "finding" and posted as a sticky⚠️ Potential breaking changes detected comment listing ~21 crates. Net effect: SemVer checking has been off repo-wide, and every PR carried a misleading breaking-change warning. Example: #705.
Fix
Bump the pin to 0.50.0, whose
trustfall_rustdocfeatures arev57,v60,v61.constants.env(used by themain.ymlsemverjob andscripts/release-packages.ps1) is bumped to the same version. That job pinsRUST_LATEST=1.96.1, which emits v57, so it was not broken — but 0.48.0 reads only v56/v57, so a developer runningrelease-packages.ps1on current stable would hit the identical error locally.Compatibility
Measured
format_versionper toolchain:RUST_LATEST)0.50.0 covers v57 and v60, so every toolchain in play works. It drops v56, which corresponds to rustc below our MSRV. Install MSRV of 0.50.0 is Rust 1.93, which the repo already meets.
Verified locally with 0.50.0 under 1.98.0:
The summary wording is unchanged, so
ConvertFrom-SemverChecksOutputinscripts/lib/releasing.ps1still parses it.just anvil-semver-check-validate-prereqspasses.Expected side effects
Versions 0.47 through 0.50 added new lints, which has two consequences.
First, the advisory comment will now report breaking changes that 0.46.0 was never able to detect, so it may look busier than it used to. That is the point of the fix, but the first few pull requests after this merges will probably carry longer comments than usual.
Second,
release-packages.ps1derives each crate's change type from the same tool, so a crate whose release would previously have been classified as a patch may now be classified as breaking. Both outcomes are the tool working correctly rather than a regression, but they are new behaviour and worth expecting rather than being surprised by.Follow-ups (not in this PR)
anvil-semver-checkrenders a tool crash identically to a real finding. A parse or build failure should be reported as an operational problem, not as "potential breaking changes".justfiles/anvil/versions.justis anvil-managed; the same pin should be bumped in thecargo-anviltemplate so other adopting repos are not left broken.