The release process is based on freezing main
, merging fixes to a dedicated release branch and releasing release candidates as things progress. Once we have a final version, the release branch is merged into main
and the freeze is lifted.
-
Checkout the repository on the correct branch and changeset (
main
). -
Create a new branch:
git checkout -b vX.Y
. -
Prepare the first release candidate by running the bundle generation:
make VERSION=x.v.z-rc.1 bundle
. -
Commit all the changes generated from the previous command:
$ git add . $ git commit -S -m "release vX.Y.X-rc.1"
-
Add release tag:
git tag vX.Y.Z-rc.1
. -
Push the generated commit and tag to the repostory branch.
$ git push origin vX.Y $ git push origin vX.Y.Z-rc.1
Note: The fix must be merged to the release branch vX.Y
, not main
.
-
Update the release branch
vX.Y
locally by pulling the bug fix merged upstream (git fetch
,git pull
) -
Prepare the release candidate by running the bundle generation:
make VERSION=x.v.z-rc.w bundle
. -
Commit all the changes generated from the previous command:
$ git add . $ git commit -S -m "release vX.Y.X-rc.W"
-
Add release tag:
git tag vX.Y.Z-rc.W
. -
Push the generated commit and tag to the repostory branch.
$ git push origin vX.Y $ git push origin vX.Y.Z-rc.W
-
Update the release branch
vX.Y
locally by pulling the bug fix merged upstream (git fetch
,git pull
) -
Prepare the final release version by running the bundle generation:
make VERSION=x.v.z bundle
. -
Commit all the changes generated from the previous command:
$ git add . $ git commit -S -m "release vX.Y.X"
-
Add release tag:
git tag vX.Y.Z
. -
Push the generated commit and tag to the repostory branch.
$ git push origin vX.Y $ git push origin vX.Y.Z
-
Merge
vX.Y
intomain