Releasing a version¶
Versioning¶
For docker tags on master and release branches (like cluster-test, cluster-preprod etc),
we use <semver> versioning. Examples: 0.0.15, 1.0.3.
Versions are bumped only when the new codebase has been tested, and images aren't overridden.
For avoiding docker tag conflicts in dev branches (like cluster-dev, cluster-dev2)
we extend this format to <semver>-<MR-number>-<dev-version>
where MR-number stands for gitlab MR number, and dev-version is just sequentially increasing number.
Examples: 0.0.15-125-1, 1.0.3-142-11.
Release new changes of Racetrack to test or dev Cluster¶
Do the following in order to apply your changes to your cluster:
In racetrack repository:
- Increment version
make version-bump MR=123, where123is the id of your merge request. - Build & push docker images by running:
make version-release-private.
In racetrack-config repository:
- Checkout to a branch related with your cluster.
- If new version involves changes in kustomize files, reset repository to corresponding branch.
- Run
make version-pick VERSION=x.y.zwithx.y.zbeing the version you just bumped. - Commit & push to trigger redeployment in Kubernetes.
You don't need to specify MR id for futher dev releases, because make version-bump
will bump the dev part if MR is set in file, otherwise it bumps just the semver part.
Releasing new Racetrack version¶
- Make sure CHANGELOG.md has all additions and changes since latest release.
- Determine new version number
x.y.zaccording to Semver and latest changes:VERSION=x.y.z - In changelog rename section "Unreleased" to
x.y.zand add date, then add a new empty "Unreleased" section. - Create release branch ie.
release-x.y.z:git checkout -b release-$VERSION - Increment version:
make version-bump-exact VERSION=$VERSION - Commit and push all changes from previous points:
git commit -am "Release version $VERSION" - Merge
release-x.y.zbranch tomaster:git checkout master && git merge release-$VERSION && git push - Tag the resulting commit and push tag:
git tag $VERSION && git push origin $VERSION - Release racetrack client (if needed) with
(cd racetrack_client && make release-pypi) - Build & push docker images by running:
make version-release-private version-release-public