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.dev0version (e.g.1.8.0when the repository is at1.8.0.dev0):python scripts/bump_version.py release currentTo release a version beyond the reserved one, name the part to bump instead, e.g.
python scripts/bump_version.py release patch python scripts/bump_version.py release minorThis updates
CHANGELOG.md, commits the release version, creates the git tag, and then
commits the subsequent.dev0version for the next iteration. -
Push to GitHub:
git push git push --tagsImportant: This must push a single tag only!
Pushing the single tag triggers thecreate-releaseworkflow 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 thepublishworkflow, 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.
Both commands require a clean git status and support --dry-run to preview the changes.