Release Process
This page is for project maintainers. Releases are published to PyPI automatically when a GitHub release is created.
Steps
- Prepare the release PR (conventionally titled
chore(release): prepare X.Y.Z):- Bump
versioninpyproject.tomlfollowing Semantic Versioning — major for breaking changes, minor for features, patch for fixes. - In
CHANGELOG.md, move the## [Unreleased]entries under a new## [X.Y.Z] - YYYY-MM-DDheading and start a fresh empty## [Unreleased]section.
- Bump
- Merge to
masterand confirm the build-and-test workflow passes. - Create a GitHub release targeting
masterwith tagvX.Y.Z, pasting the changelog section as the release notes. - Publishing happens automatically: the
deploy to pypiworkflow (.github/workflows/deploy-pypi.yml) triggers on release creation and runspoetry publish --buildusing theTWINE_API_KEYrepository secret.
Post-Release Checks
- Verify the new version appears on PyPI.
- Verify the Read the Docs build succeeded for the new tag.