
Release
Cut a FastMCP release end to end.
Install
npx skills add PrefectHQ/fastmcp --skill release -g -a claude-code -y- Repository
- PrefectHQ/fastmcp28.3k
- Category
- Git and review
- Updated
- 3d ago
- License
- Apache-2.0
- Context cost
- Mediumabout 2,843 tokens
- Runs scripts
- Yes, review before use
What it does
Cut a FastMCP release end to end. Use when the maintainer says "cut a release", "prep a patch", "ship 4.x.y", or asks what a release would contain. Covers the notes preview, the title pun, the docs changelog PR that must land before the tag, the tag itself, the publish fan-out, and verifying gofastmcp.com actually deployed.
Cutting a release
A release is a tag on the branch that owns the line: <branch> below is main for
the current major and release/3.x for 3.x maintenance. Every step runs against that
branch, including the docs PR, so a maintenance entry lands in the maintenance
branch's own changelog above its newest 3.x entry. The tag triggers Publish fastmcp-slim to PyPI;
its success fans out to fastmcp-tasks, fastmcp-remote, and fastmcp, and the
fastmcp publish job opens the published-docs PR that makes gofastmcp.com reflect
the release. Two hand-maintained docs files mirror every release and must be on the
tagged commit, so the docs PR always lands first. PyPI releases are immutable; a bad
one gets a follow-up patch, never a re-tag.
Procedure
-
Preview what's in it.
git fetch origin && git log v<prev>..origin/<branch> --format='%h %s' gh api -X POST repos/PrefectHQ/fastmcp/releases/generate-notes \ -f tag_name=v<new> -f target_commitish=<branch> -f previous_tag_name=v<prev> --jq .body \ > /tmp/generated-notes.md uv run scripts/release_contributor_credit.py /tmp/generated-notes.md \ > /tmp/contributor-credit.jsonRead the two most recent releases for voice:
gh release list -L 5, thengh release view <tag>on each.Review the scan's attribution candidates. The helper batch-fetches metadata only for PRs in the generated notes. It suggests shared credit for human authors of the PR commits and final merged commit, plus issue reporters whose issues are closed by a maintainer PR, even when their co-author trailer is missing. Human co-authors are included even when the PR has no linked issue. It excludes known agent identities and bots; a GitHub
Useridentity alone does not prove someone is human. Maintainer permission checks are reused across PRs.

