A staging release is automatically created on every merge to the develop branch.
The CI pipeline runs the following steps:
- Bump dev version — increments the alpha version based on the latest version on TestPyPI
- Build package — builds the Python package (requires a passing e2e test suite)
- Publish package — uploads the package to TestPyPI
The staging release is installed nightly at 03:30 on the test server.
A production release is triggered automatically when a version tag is pushed to main.
The tag is created by the CI pipeline on every merge to main:
- Bump version — increments the version and creates an annotated Git tag
- Tag push — triggers the deploy pipeline
- Build & publish — builds the package and publishes it to PyPI
- Create release — creates a GitHub release with changelog
- Notify — sends a Mattermost notification
The production release will be installed on Fridays during the maintenance window.