fix(tier-check): extract semver from monorepo release tags, add --tag-prefix#411
Open
hashemix wants to merge 2 commits into
Open
fix(tier-check): extract semver from monorepo release tags, add --tag-prefix#411hashemix wants to merge 2 commits into
hashemix wants to merge 2 commits into
Conversation
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.
Description:
tier-check's stable-release check fails for any SDK monorepo that publishes per-package releases.Two flaws:
1- it picks the first non-draft release regardless of which package it belongs to
2-
tag_name.replace(/^v/, '')can only parse plainvX.Y.Ztags and fails on package prefixes.This PR fixes both by extracting semver from anywhere in the tag and adding
--tag-prefixto scope release detection to a single package's tag line. Applied to both stable-release and spec-tracking checks.Motivation and Context
Closes #151
Our monorepo (
rust-mcp-stack/rust-mcp-sdk) uses release-please per-crate tags (rust-mcp-sdk-v1.0.1,rust-mcp-transport-v1.0.0).tier-checkis not able to parse the right release tag, becauseparseInt("rust-mcp-sdk-v1.0.1")→NaN→is_stable = false.The
mcp-usemonorepo in #151 hits the sibling problem: the first release in API order belongs to a different package/canary line (mcp-use@1.18.0-canary.3instead ofpython-v1.5.2).How Has This Been Tested?
npm test- all tests pass (22 new vitest cases inrelease.test.ts)npm run lint- cleannpm run typecheck- cleannpm run build- cleantier-check --repo rust-mcp-stack/rust-mcp-sdk --skip-conformancenow shows✓ Stable Release 1.0.0(was✗ Stable Release rust-mcp-transport-v1.0.0)Breaking Changes
None for single-package repos with plain
v1.2.3tags — behavior is unchanged. Monorepos now need--tag-prefixto scope to the right package, but without it they graduate from "always fails" to "picks the first parseable semver tag."Types of changes
Checklist
Additional context
N/A