- Stop merges to
masterbranch except for the PR in the next section.
-
Create a release branch on the upstream.
git fetch upstream master git push upstream upstream/master:refs/heads/vX.Y -
Set branch protection rules on
vX.Ybranch in GitHub repository settings.
-
On the release branch, change the default value of the image tag variable in Makefile. Set only major and minor part of version without the 'v' prefix.
IMAGE_TAG ?=X.Y -
Commit the change.
git commit -a -m "Pin tags to X.Y" -
Update generated code (manifests, examples, chart defaults, ...).
make update -
Commit changes and create a PR with
vX.Yas base branch.git commit -a -m "Updated generated code" -
Once the PR is merged, tag the merge commit as
vX.Y.Z-beta.0using an annotated tag.git fetch upstream vX.Y git tag -a vX.Y.Z-beta.0 upstream/vX.Y -m "vX.Y.Z-beta.0" git push upstream vX.Y.Z-beta.0
-
Enable building docs from
vX.Ybranch by adding an entry todocs/source/conf.py.BRANCHES = ['master', 'v0.3', 'v1.0', 'v1.1', 'vX.Y'] -
Send the PR to
masterbranch. -
When merged, create an annotated tag
vX.Y+1.0-alpha.0for the next release from the merge commit.git fetch upstream master git tag -a vX.Y+1.0-alpha.0 upstream/master -m 'vX.Y+1.0-alpha.0' git push upstream vX.Y+1.0-alpha.0 -
Open
masterbranch for merging.
-
For
Z=0, the release candidate should be tagged only when all issues in the GitHub milestone are closed and fixed in the release branch. -
Tag the HEAD of the release branch using an annotated tag.
git fetch upstream vX.Y git tag -a vX.Y.Z-rc.I upstream/vX.Y -m "vX.Y.Z-rc.I" git push upstream vX.Y.Z-rc.ICI will automatically create a new release in GitHub and publish the release notes there.
-
Announce the new RC with the link to the GitHub release on:
#scylla-operatorchannel in ScyllaDB-Users Slack- users mailing list (https://groups.google.com/g/scylladb-users)
-
Tag the final release from the last RC that was approved by QA team using an annotated tag:
git tag -a vX.Y.Z tags/vX.Y.Z-rc.I^{} -m 'vX.Y.Z' git push upstream vX.Y.ZCI will automatically create a new release in GitHub and publish the release notes there.
-
Promote the container image from the latest RC approved by QA team.
-
skopeoskopeo copy docker://docker.io/scylladb/scylla-operator:X.Y.Z-rc.I docker://docker.io/scylladb/scylla-operator:X.Y.Z -
dockerdocker pull docker.io/scylladb/scylla-operator:X.Y.Z-rc.I docker tag docker.io/scylladb/scylla-operator:X.Y.Z-rc.I docker.io/scylladb/scylla-operator:X.Y.Z docker push docker.io/scylladb/scylla-operator:X.Y.Z
-
-
Publish the Helm charts.
git checkout vX.Y.Z gcloud auth login make helm-publish HELM_CHANNEL=stable HELM_APP_VERSION=X.Y.Z HELM_CHART_VERSION=vX.Y.Z -
Ask QA to smoke test vX.Y.Z helm charts.
-
Mark docs as latest in
docs/source/conf.pyin the master branch:smv_latest_version = 'vX.Y' -
Submit a PR using
masteras target branch. -
(optional) Update the release schedule in
docs/source/release.md. -
Submit a PR using
masteras target branch. -
Wait for QA to give you the green light.
-
Announce the new release with the link to the GitHub release on:
#scylla-operatorchannel in ScyllaDB-Users Slack- users mailing list (https://groups.google.com/g/scylladb-users)
-
Release notes are now published by CI for every release and beta+rc prereleases. The release notes contain changes since the last corresponding release in the same category, according to this table
Current Previous v1.2.0-beta.0 v1.1.0 v1.2.0-beta.1 v1.2.0-beta.0 v1.2.0-rc.0 v1.1.0 v1.2.0-rc.1 v1.2.0-rc.0 v1.1.2 v1.1.1 v1.2.0 v1.1.0