Releasing
The package version is derived from git tags via hatch-vcs. Do not manually edit a target version
in pyproject.toml when cutting a release.
Checklist
Section titled “Checklist”- Ensure the release-ready state is committed, including changelog updates.
- Bump
server.jsonsoversionandpackages[0].versionmatch the newX.Y.Z. - Confirm GitHub CodeQL default setup is disabled when the checked-in advanced CodeQL workflow is enabled; otherwise GitHub rejects the workflow’s CodeQL SARIF upload.
- Confirm the hygiene test passes; it enforces that
server.jsonmatches the top changelog entry. - Create a git tag in the repository’s
vX.Y.Zformat on the intended release commit. - Push the branch and tag to GitHub.
- (Optional) Re-run the eval (
uv run --group evals python -m evals.run_eval), commitevals/results/, and regenerate the evaluation page (scripts/update_docs_eval.py). The first time this page is generated, add auser-guide/evaluationentry to the sidebar indocs-site/astro.config.mjs— Starlight won’t surface the page until it’s listed there. - Allow the release workflow to build and publish the tagged version.
- Draft GitHub Release notes from that tag.
- The release workflow republishes to the MCP registry automatically (its
mcp-registryjob stamps the tag version intoserver.jsonand publishes via GitHub OIDC). Verify the new version appears in the registry;mcp-publisher publishremains available as a manual fallback if that job fails.
This repository’s existing releases use lightweight tags:
git tag vX.Y.Zgit push origin maingit push origin vX.Y.ZOnce the tag is on GitHub, create the release in the GitHub interface under
Releases -> Draft a new release.
