ci: extend semver check to all features except local#832
Merged
alexhancock merged 1 commit intomainfrom May 5, 2026
Merged
Conversation
alexhancock
approved these changes
May 5, 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.
Motivation and Context
CI's SemVer Check job currently only validates the default feature set. This exception exists because the
localfeature intentionally changes the public API, which could lead to false positives if checked. Unfortunately, this means that other non-default features liketransport-streamable-http-server,auth, andtransport-streamable-http-client-reqwestalso go unchecked, even though they are stable public APIs that downstream users rely on. #824 (comment) highlighted this issue. A breaking change to a transport module wouldn't have been caught by CI.This PR adds a second
cargo semver-checksinvocation to the existingsemverjob. It enables every published feature except forlocal. The feature list is generated during the job usingcargo metadataandjq, filtering outlocaland any internal__-prefixed features. This approach is consistent with thetest-no-localjob already in this workflow, maintaining the same method for handling thelocalexception. The check for default features is kept as a separate step, ensuring that failures from the typical user experience are easy to read in CI logs.How Has This Been Tested?
CI passes
Breaking Changes
CI-only change
Types of changes
Checklist
Additional context