- Stop merges to
master
branch 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.Y
branch 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.Y
as base branch.git commit -a -m "Updated generated code"
-
Once the PR is merged, tag the merge commit as
vX.Y.Z-beta.0
using 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
-
Ask QA to run smoke test on beta before preparing release candidate.
-
Enable building docs from
vX.Y
branch by adding an entry todocs/source/conf.py
.BRANCHES = ['master', 'v0.3', 'v1.0', 'v1.1', 'vX.Y']
-
Set new version as unstable:
UNSTABLE_VERSIONS = ['master', 'vX.Y']
-
Send the PR to
master
branch. -
When merged, create an annotated tag
vX.Y+1.0-alpha.0
for 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
master
branch 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.I
CI 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-operator
channel 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.Z
CI 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.
-
skopeo
skopeo copy docker://docker.io/scylladb/scylla-operator:X.Y.Z-rc.I docker://docker.io/scylladb/scylla-operator:X.Y.Z
-
docker
docker 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, and remove from unstable versions list in
docs/source/conf.py
in the master branch:smv_latest_version = 'vX.Y' UNSTABLE_VERSIONS = ['master']
-
Submit a PR using
master
as target branch. -
(optional) Update the release schedule in
docs/source/release.md
. -
Submit a PR using
master
as target branch. -
Wait for QA to give you the green light.
-
Announce the new release with the link to the GitHub release on:
#scylla-operator
channel 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