Releasing
Prerequisites
gh(authenticated),claudeCLI,bunmcp-publisherfrom the registry releases- npm account with 2FA, member of the
@roadravenscope
Steps
- Merge the feature PRs.
- Release branch and bump:
git switch -c chore/release-X.Y.Z bun scripts/bump-version.ts X.Y.Z # also refreshes bun.lock grep -rn "<previous version>" README.md docs/ # fix prose pins by handSet the
## [X.Y.Z] - dateheading inCHANGELOG.md. bun run verify, then commitchore(release): bump version to X.Y.Z.bun scripts/release-smoke.ts(fresh install + upgrade from the previous tag in an isolated Claude config, running the app’s update-toast commands). It upgrades to the committedHEAD, so run it after the bump commit; it refuses to run while the working tree’s version differs fromHEAD’s.- Open the PR, wait for green CI, merge.
- Tag the merge commit (lightweight, like previous tags) and push:
git switch master && git pull git tag vX.Y.Z && git push origin vX.Y.Z - Watch the Release workflow:
gh run watch. It builds the installers, stages@roadraven/mcp(npm stage publish) and creates the GitHub release. - Approve the npm stage. Find the id in the run’s “Publish @roadraven/mcp” log:
npm stage approve <stage-id> # 2FA; or approve on npmjs.com - Publish to the MCP Registry:
cd plugins/claude-code mcp-publisher login github && mcp-publisher publish - Replace the GitHub release body with the CHANGELOG notes, including an “already on the plugin” section for users who only need
/plugin marketplace update:gh release edit vX.Y.Z --notes-file notes.md - Verify, then announce:
bun scripts/release-verify.ts
Pitfalls
- Claude Code does not auto-update third-party marketplaces. Users need
/plugin marketplace update roadraven, or auto-update enabled for it. - Plugin
updatedoes not install newly added dependencies; call it out in the notes when a release adds one. raw.githubusercontent.comcaches up to 5 minutes; a marketplace FAIL right after merge may just need a retry.- The npm publish is stage-only by design: until step 8,
release-verifyreports npm FAIL.