The release process consists of creating a release branch, merging fixes to main
and to the release branch, and releasing release candidates as things progress. Once a release candidate is stable, a final version can be released.
-
Checkout the repository on the correct branch and changeset (
main
). -
Create a new release branch:
git checkout -b vX.Y
. -
Add a tag for the first release candidate:
git tag vX.Y.Z-rc.1
. -
Push the branch and tag.
$ git push origin vX.Y $ git push origin vX.Y.Z-rc.1
-
Bump the tag in the
internal/version/version.go
file in the main branch to the next minor pre-release version using the-dev
pre-release suffix.
Note: The fix must be merged to main
and backported the release branch.
-
Update the release branch
vX.Y
locally by pulling the bug fix merged upstream (git fetch
,git pull
) -
Modify the version string in
internal/version/version.go
to the release candidate version. -
Add a tag for the new release candidate:
git tag vX.Y.Z-rc.W
. -
Push the branch and tag.
$ git push origin vX.Y $ git push origin vX.Y.Z-rc.W
-
Update the release branch
vX.Y
locally by pulling any bug fixes merged upstream (git fetch
,git pull
) -
Modify the version string in
internal/version/version.go
to the final version. -
Add a final release tag:
git tag vX.Y.Z
. -
Push the branch and tag.
$ git push origin vX.Y $ git push origin vX.Y.Z-rc.W
-
Create a GitHub release.
- Choose the version tag
vX.Y.Z
- Set the release title to
vX.Y.Z
- Click on
Generate release notes
for automatic release notes generation - Click on
Publish release
- Choose the version tag