Release Prep
Overview
Follow the code-index-mcp release checklist and use the helper script for quick repo status. Keep this file focused on the high-level workflow; the checklist contains the exact commands.
Release work is gated: do not start the bump/tag flow from a dirty tree or the wrong branch.
Workflow
- Run
scripts/run_release_checks.pyand review the output. - Stop immediately if the working tree is not clean or if the current branch is not the intended release branch. Resolve that first.
- Review changes since the last tag and decide the semver bump using these rules:
patch: bug fixes or user-visible corrections without new surface areaminor: backward-compatible features or capability expansionsmajor: breaking API/behavior changes or migration-required releases
- Confirm the target version and release branch with the user.
- Run the full test suite:
uv pip install pytest && uv run python -m pytest tests/. - Update version files:
pyproject.toml,src/code_index_mcp/__init__.py,uv.lock.- Regenerate
uv.lockwith the normal project workflow; do not hand-edit it.
- Regenerate
- Ensure the staged diff only touches release-related files. If anything else is present, explain why before committing.
- Commit with Conventional Commits (e.g.,
chore(release): vX.Y.Z). - Draft release notes from the changes since the last tag. Focus on user-visible functional changes, note any breaking changes explicitly, and exclude purely technical-only housekeeping unless users need to know.
- Confirm the release notes with the user before creating the GitHub release.
- Create the annotated tag, push the release branch + tag, and create the GitHub release.
- Verify the release exists remotely and follow up on CI/deploy jobs.
Resources
scripts/
scripts/run_release_checks.pyfor repo status, latest tag, and version file presence before editing versions.
references/
references/release_checklist.mdfor the exact steps, commands, and files.