Repository navigation
ci: skip the MCP Registry for pre-release tags - #194
Merged
Merged
Conversation
The MCP Registry ranks versions by semver, so publishing a pre-release such as 1.2.0-beta.1 over 1.1.0 would make it the Registry's "latest". The four Registry steps now run only for tags without a "-" suffix, matching the expression that already marks the GitHub Release as a pre-release. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The workflow gating is consistent with the existing prerelease detection logic and the documentation updates match the intended behavior.
Pull request overview
Updates the release automation and documentation so that publishing to the Official MCP Registry is skipped for pre-release tags (those containing -), while still producing a GitHub pre-release and publishing packages to NuGet/GitHub Packages as usual. This aligns the pipeline behavior with the MCP Registry’s semver-based “latest” selection to avoid betas superseding the current stable release.
Changes:
- Gate the MCP Registry-related steps in
.github/workflows/publish.ymlbehind!contains(tag, '-'). - Document the pre-release behavior in
ARCHITECTURE.mdandCLAUDE.md.
File summaries
| File | Description |
|---|---|
.github/workflows/publish.yml |
Skips server.json stamping / validation wait / mcp-publisher install+publish steps for pre-release tags. |
ARCHITECTURE.md |
Updates the release-flow diagram and adds rationale for skipping the Registry on pre-releases. |
CLAUDE.md |
Updates the release notes section to reflect the new pre-release Registry behavior. |
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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.
Summary
publish.yml(stampserver.json, installmcp-publisher, 300 s validation wait, publish) on!contains(tag, '-'), the same expression that already marks the GitHub Release as a pre-release.ARCHITECTURE.mdand the release note inCLAUDE.md.Why
The Registry sorts by semver and sets
isLatestaccordingly (versioning docs). Publishing1.2.0-beta.1would rank it above1.1.0and point registry clients at the beta until1.2.0ships.This unblocks a
v1.2.0-beta.1tag to exercise the new Native AOT release pipeline from #193 end to end: NuGet.org, GitHub Packages, the NuGet.org wait, pointer packages, and the GitHub pre-release. Themcp-publishercommands haven't changed since v1.1.0, so skipping them on betas loses little coverage.Test plan
actionlintpasses onpublish.ymlv1.2.0-beta.1after merge: the Registry steps show as skipped and the GitHub Release is marked pre-release🤖 Generated with Claude Code