fix(tier-check): strip package-name prefixes from monorepo release tags - #463
Open
hwkiem wants to merge 1 commit into
Open
fix(tier-check): strip package-name prefixes from monorepo release tags#463hwkiem wants to merge 1 commit into
hwkiem wants to merge 1 commit into
Conversation
Version detection stripped only a leading `v`, so the monorepo tags Cargo workspaces publish (`rmcp-v3.0.1`, `rmcp-macros-v3.0.1`) parsed to NaN and scored `stable_release: fail`. rust-sdk was reported as having no stable release despite a non-prerelease `rmcp-v3.0.1`. Match the version at the end of the tag instead, so any package-name prefix is ignored while bare (`1.2.3`), `v`-prefixed and prerelease (`v2.0.0-rc1`) tags parse as they did before. Tags carrying no recognizable version are returned unchanged rather than dropped, so they still surface in the check output. Fixes modelcontextprotocol#425
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.
Fixes #425.
checkStableReleasestripped only a leadingv, so per-package tags likermcp-v3.1.3parsed toNaNand scoredstable_release: fail. The version is now matched at the end of the tag, so any package-name prefix is ignored.Motivation and Context
stable_releasefeeds both the Tier 1 blocker list and the Tier 2 gate, so a monorepo SDK is scored below what its releases support. Running against rust-sdk with--skip-conformance,mainreportsfailwithversion: "rmcp-v3.1.3"and listsstable_releaseintier1_blockers; sincetier2Metalso requiresis_stable, the implied tier is 3. With this change the check reportspasswithversion: "3.1.3"and the implied tier is 2. Both runs skip conformance, so those legs block Tier 1 either way andstable_releaseis the only difference.How Has This Been Tested?
Ran the issue's repro against the live repo on both
mainand this branch:Since this is shared infrastructure, I ran the same comparison across all eight official SDKs. rust-sdk is the only row that changes:
kotlin-sdk still failing at 0.15.0 is the useful half: the change ignores a package-name prefix without making the check permissive about pre-1.0 versions.
New
release.test.tsadds 10 cases drivingcheckStableReleasethrough a stubbed Octokit. Five cover the monorepo tags and fail againstmain; the other five are regression guards (bare tags,vprefixes, the GitHubprereleaseflag, unparseable tags, empty release list) and pass either way. Full suite green at 534 tests, withtypecheckandlintclean.Breaking Changes
None. The
versionfield now reports the parsed version rather than the raw tag, so a monorepo SDK surfaces"3.1.3"where it previously surfaced"rmcp-v3.1.3". That matches what already happened forv-prefixed tags.Types of changes
Checklist
Additional context
releases.find((r) => !r.draft)still takes the most recent published release regardless of which package it belongs to, so on a workspace the check can score whichever crate released last. The issue cites bothrmcp-v3.0.1andrmcp-macros-v3.0.1as tags that should be recognized, so that behavior is left alone here. Happy to follow up if per-package selection is wanted.