Skip to content

ci: add semver check job and disable release-plz semver#765

Open
DaleSeo wants to merge 1 commit intomainfrom
ci/semver-check-config
Open

ci: add semver check job and disable release-plz semver#765
DaleSeo wants to merge 1 commit intomainfrom
ci/semver-check-config

Conversation

@DaleSeo
Copy link
Member

@DaleSeo DaleSeo commented Mar 21, 2026

Motivation and Context

Follow-up to #757. release-plz runs its semver analysis with all features enabled, which includes the local feature. Since local intentionally changes the API surface (relaxing Send + Sync bounds), this causes false-positive breaking-change detections and forces a major version bump (see #747).

This PR disables release-plz's built-in semver check via release-plz.toml and adds a dedicated CI job that runs cargo semver-checks --default-features instead. This way, real breaking changes in the default API are still caught in CI, while the intentional local feature changes don't trigger false alarms.

There's an open issue to support feature selection in release-plz (release-plz/release-plz#2291), which would make this workaround unnecessary.

How Has This Been Tested?

  • Before
❯ release-plz update
2026-03-21T22:47:22.117639Z  INFO release-plz config file not found, using default configuration
2026-03-21T22:47:22.170966Z  INFO downloading packages from cargo registry crates.io
    Updating crates.io index
2026-03-21T22:47:23.236402Z  INFO determining next version for rmcp-macros 1.2.0
2026-03-21T22:47:23.329625Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpnB5alv/rust-sdk/crates/rmcp-macros
2026-03-21T22:47:23.467754Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpnB5alv/rust-sdk/crates/rmcp-macros
2026-03-21T22:47:23.637035Z  INFO determining next version for rmcp 1.2.0
2026-03-21T22:47:23.739673Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpnB5alv/rust-sdk/crates/rmcp
2026-03-21T22:47:23.869127Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpnB5alv/rust-sdk/crates/rmcp
2026-03-21T22:47:23.995122Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpnB5alv/rust-sdk/crates/rmcp
2026-03-21T22:47:24.120005Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpnB5alv/rust-sdk/crates/rmcp
2026-03-21T22:47:24.244825Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpnB5alv/rust-sdk/crates/rmcp
2026-03-21T22:47:24.369571Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpnB5alv/rust-sdk/crates/rmcp
2026-03-21T22:47:24.499764Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpnB5alv/rust-sdk/crates/rmcp
2026-03-21T22:47:24.633546Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpnB5alv/rust-sdk/crates/rmcp
2026-03-21T22:47:25.223515Z  INFO Checking API compatibility with cargo-semver-checks...
2026-03-21T22:48:02.265882Z  INFO rmcp-macros: next version is 2.0.0
2026-03-21T22:48:02.267297Z  INFO rmcp: next version is 2.0.0 (⚠️ API breaking changes)

* `rmcp-macros`: 1.2.0 -> 2.0.0
* `rmcp`: 1.2.0 -> 2.0.0 (⚠️ API breaking changes)
  • After
❯ release-plz update
2026-03-21T22:46:27.915372Z  INFO using release-plz config file release-plz.toml
2026-03-21T22:46:27.962563Z  WARN no upstream configured for branch ci/semver-check-config
2026-03-21T22:46:27.978997Z  INFO downloading packages from cargo registry crates.io
    Updating crates.io index
2026-03-21T22:46:28.966033Z  WARN no upstream configured for branch ci/semver-check-config
2026-03-21T22:46:29.011790Z  INFO determining next version for rmcp-macros 1.2.0
2026-03-21T22:46:29.111822Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpqW4bwn/rust-sdk/crates/rmcp-macros
2026-03-21T22:46:29.247878Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpqW4bwn/rust-sdk/crates/rmcp-macros
2026-03-21T22:46:29.413410Z  INFO determining next version for rmcp 1.2.0
2026-03-21T22:46:29.510939Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpqW4bwn/rust-sdk/crates/rmcp
2026-03-21T22:46:29.641886Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpqW4bwn/rust-sdk/crates/rmcp
2026-03-21T22:46:29.777040Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpqW4bwn/rust-sdk/crates/rmcp
2026-03-21T22:46:29.903724Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpqW4bwn/rust-sdk/crates/rmcp
2026-03-21T22:46:30.029825Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpqW4bwn/rust-sdk/crates/rmcp
2026-03-21T22:46:30.157314Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpqW4bwn/rust-sdk/crates/rmcp
2026-03-21T22:46:30.281391Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpqW4bwn/rust-sdk/crates/rmcp
2026-03-21T22:46:30.414393Z  INFO Getting packaged files for crate at /var/folders/v2/5j2zr9qs7c76ph0yxn53d_9r0000gp/T/.tmpqW4bwn/rust-sdk/crates/rmcp
2026-03-21T22:46:30.592173Z  INFO rmcp-macros: next version is 1.3.0
2026-03-21T22:46:30.593722Z  INFO rmcp: next version is 1.3.0
2026-03-21T22:46:30.951146Z  WARN no upstream configured for branch ci/semver-check-config

* `rmcp-macros`: 1.2.0 -> 1.3.0
* `rmcp`: 1.2.0 -> 1.3.0

Breaking Changes

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

@DaleSeo DaleSeo self-assigned this Mar 21, 2026
@github-actions github-actions bot added T-CI Changes to CI/CD workflows and configuration T-config Configuration file changes labels Mar 21, 2026
@DaleSeo DaleSeo force-pushed the ci/semver-check-config branch from f2b7dd8 to 144b55f Compare March 21, 2026 23:03
@DaleSeo DaleSeo marked this pull request as ready for review March 22, 2026 10:37
@DaleSeo DaleSeo requested a review from a team as a code owner March 22, 2026 10:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T-CI Changes to CI/CD workflows and configuration T-config Configuration file changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant