MCP Registry
Serena
By oraios · 31,032
Semantic code retrieval & editing tools for coding agents.
Developer Instructions
Python Environment & Development Tools
See the contributing guide for instructions on setting up your development environment and tools for formatting and type checking.
Release Process
Ensure clean git status.
Set the version for release. Normally, the version to be released is the one already reserved by the current .dev0 version (e.g. 1.8.0 when the repository is at 1.8.0.dev0):
python scripts/bump_version.py release current
To release a version beyond the reserved one, name the part to bump instead:
python scripts/bump_version.py release patch python scripts/bump_version.py release minor
This updates CHANGELOG.md, commits the release version, creates the git tag, and then commits the subsequent .dev0 version for the next iteration.
- Push to GitHub:
git push git push --tags
Important: This must push a single tag only. Pushing the single tag triggers the create-release workflow for the tag, which creates a draft release on GitHub.
- Review the draft release on the GitHub Releases page. When ready, publish it (click Publish release). This triggers the publish workflow, which builds and publishes the package to PyPI.
Bumping the Development Version
Independently of a release, the development version can be bumped, e.g. when work on main begins to target a new minor or major version:
python scripts/bump_version.py dev minor python scripts/bump_version.py dev major
This sets the version to the respective new .dev0 version (e.g. 1.8.0.dev0) and commits it as "Set version to vX"; it creates no tag and does not modify CHANGELOG.md.
The subsequent release of that version is then performed with release current.
