ci: enable cargo-semver-checks now that 0.6.0 is published - #18
Open
JustinKovacich wants to merge 1 commit into
Open
ci: enable cargo-semver-checks now that 0.6.0 is published#18JustinKovacich wants to merge 1 commit into
JustinKovacich wants to merge 1 commit into
Conversation
The flag was off because cargo-semver-checks diffs the crate's public API against its published baseline, and there was none. The 0.6.0 release-plz publish created one, which is the condition the comment said to wait for. Also records what the check cannot do, so the flip does not read as more coverage than it is: it inspects the API surface, so 0.6.0's own `Message::encode` change -- same signature, different bytes -- would have passed it clean. Behavioral breaks still need `!` on the PR title by hand. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
zheylmun
approved these changes
Sep 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Flips
run-semver-checksfromfalsetotruein.github/workflows/main.yml, and rewrites the comment above it to match.Why
The flag was off with a comment saying to turn it on "once the first release-plz publish has happened." That happened:
simple_doip 0.6.0went to crates.io at 2026-09-10T16:56:23Z, published unattended by the release-plz job on the merge of #11-#17.cargo-semver-checksdiffs the crate's public API against its published baseline, and there now is one.Until this is on, nothing mechanical stops the next release from being an unmarked breaking change — and
mainnow publishes on merge, so an unmarked break is a published break, on a version number that can't be reused.What it does not buy
The comment now says this explicitly, because the flip could easily be read as more coverage than it is.
cargo-semver-checksinspects the public API surface. It catches a changed signature; it does not catch changed behavior behind an unchanged one.0.6.0 is the worked example:
Message::encodekept its signature exactly and started emitting different bytes. This check would have passed that release clean. The bump was correct anyway because it was marked by hand.So behavioral breaks still depend on
!on the PR title, perCONTRIBUTING.md. That is a human step and this check does not replace it.Verification
This PR is its own test —
ci / Semver Checksruns here for the first time, against the 0.6.0 baseline. It should pass, since the PR changes no Rust.🤖 Generated with Claude Code