Open Zaak makes use of quite a bit of Continuous Integration tooling to set up a full release process, all driven by the Git repository.
Our pipeline is mostly implemented on Github Actions:
Merges to the main
branch are built on Github, where:
- Tests are run
- Code quality checks are run
- Compatibility with the API's voor zaakgericht werken standard spec is tested
- The Docker image is built and published
If the build is for a Git tag on the main
branch, then the image is built and publish with that version tag to Docker Hub.
Releasing a new version can only be done by people with merge permissions to the main branch belonging to the Open Zaak organisation on Github.
Assuming a current version of 0.9.0
:
Create a release branch
git checkout -b release/1.0.0
Update the changelog
Update CHANGELOG.rst
in the root of the project, and make sure to commit the changes.
Bump the version
bumpversion minor
and commit:
git commit -am ":bookmark: Bump version to 1.0.0"
Push the changes and make a pull request.
Tag the release
Once the PR is merged to main, check out the main
branch and tag it:
git checkout main
git pull
git tag 1.0.0
Tagging will ensure that a Docker image openzaak/open-zaak:1.0.0
is published.
You can also make use of bumpversion to mark a release as a dev release:
bumpversion dev
Which will take care of the major.minor.patch.devX
suffix of devX
.