Skip to content

ci: check user-facing crate semver - #1156

Merged
ia0 merged 5 commits into
google:mainfrom
mnkj0021:fix/573-semver-checks
Oct 2, 2026
Merged

ia0 merged 5 commits into
google:mainfrom
mnkj0021:fix/573-semver-checks

Conversation

@mnkj0021

@mnkj0021 mnkj0021 commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Fixes #573.

Adds cargo-semver-checks to the existing wrapper/cache flow and a dedicated PR CI check for the user-facing crates requested in the issue discussion:

  • wasefire-board-api (crates/board)
  • wasefire-scheduler (crates/scheduler)
  • wasefire (crates/prelude)

The check compares a crate whose version changed against the pull request base revision, using the public feature sets represented by each crate's docs configuration. Unchanged crates are skipped. It is also wired into scripts/ci.sh for local use.

Validation:

  • sh -n scripts/ci-semver.sh scripts/ci.sh scripts/wrapper.sh: passed
  • ./scripts/ci-copyright.sh: passed
  • ./scripts/ci-semver.sh <upstream-main>: passed; all three unchanged crates skipped as expected
  • temporary patch-version bumps for board, scheduler, and prelude: each built current and baseline APIs and passed 196/196 applicable SemVer checks
  • negative control removing Impossible::unreachable from board with a patch bump: failed as expected with inherent_method_missing, requiring a major version bump
  • git diff --check: passed
  • ./scripts/ci-changelog.sh: not completed locally because this VPS lacks the system libudev development package required by the xtask dependency graph

AI coding-assistant assistance was used while preparing and validating this contribution. I reviewed the final diff and validation results and take responsibility for the submission.

@mnkj0021
mnkj0021 requested a review from ia0 as a code owner October 1, 2026 15:08

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new SemVer compatibility check for user-facing published crates (board, scheduler, and prelude) using cargo-semver-checks. The feedback recommends improving the robustness of the version extraction logic in scripts/ci-semver.sh by handling potential formatting variations in Cargo.toml and ensuring that version parsing failures do not silently bypass the SemVer checks.

Comment thread scripts/ci-semver.sh Outdated
Comment thread scripts/ci-semver.sh Outdated
mnkj0021 and others added 3 commits October 1, 2026 15:40
Signed-off-by: mnkj0021 <98058999+mnkj0021@users.noreply.github.com>
ia0
ia0 previously approved these changes Oct 2, 2026

@ia0 ia0 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for the PR!

@ia0
ia0 merged commit 6caa3fe into google:main Oct 2, 2026
42 checks passed
@ia0 ia0 added the for:maintainability Improves maintainers life label Oct 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

for:maintainability Improves maintainers life

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add cargo semver checks to CI

3 participants