Release Process#
Versioning follows Semantic Versioning (v<major>.<minor>.<patch>)
with git tags.
Creating a release#
Prepare changelog
Collect towncrier fragments into the release notes:
towncrier build --version=<VERSION>
Commit the updated
CHANGES.rstand remove the fragment files.Tag the release
git tag -a v<MAJOR>.<MINOR>.<PATCH> -m "Release v<MAJOR>.<MINOR>.<PATCH>" git push origin v<MAJOR>.<MINOR>.<PATCH>
CI publishes automatically
On tag push, the pipeline:
Builds container images (backend, auth, frontend, playwright)
Publishes images to
harbor.cta-observatory.org/suss/Packages and publishes the Helm chart
Runs all tests and SonarQube analysis
Promote to environments
Update the Flux Git repository to reference the new chart version. See Staging & Production for the promotion flow.
Changelog management#
The project uses towncrier. Each merge request adds a fragment
under docs/changes/ following the naming docs/changes/42.bugfix.rst,
specifying the number of the merge request and the type of change.
Fragment types: feature, bugfix, api, optimization, maintenance.
The need for adding a new fragment in a given merge request can be
omitted if no-changelog-needed label is added.
See pyproject.toml for the towncrier configuration.