Releases
Claircore releases are cut when they are needed, as judged by the maintainers.
Releases are made from the main
branch.
On rare occasions when a fix is time-sensitive, it is possible to create a release branch and make a release from it.
Process
NOTE: Ensure changelog entries have been created for the relevant commits. (see Changelog documentation)
From main
NEW_VERSION=v0.999.999
.github/scripts/prepare-release -b main -r upstream "$NEW_VERSION"
Follow the prepare-release
command's instructions to merge changelog updates and release the tag.
From release branch
First, create the relevant release branch.
For example, if you are releasing v0.999.1
create release-v0.999
from the previous tag (in this case, v0.999.0
).
Next, cherry-pick any needed commits with the -x
flag to keep a reference to the original commit.
This may involve rewriting the changes.
Once the backports are done, push the release branch.
LAST_MINOR=v0.999.0
BRANCH=release-${LAST_MINOR%.*} # e.g. release-v0.999
git branch $BRANCH $LAST_MINOR
TO_BACKPORT=beefc0ffee # Use the commit digest of the original commit
git cherry-pick -x $TO_BACKPORT
git push upstream $BRANCH
Finally, prepare the release specifying the release branch.
LAST_MINOR=v0.999.0
NEW_VERSION=v0.999.1
BRANCH=release-${LAST_MINOR%.*} # e.g. release-v0.999
.github/scripts/prepare-release -b $BRANCH -r upstream $NEW_VERSION
Follow the prepare-release
command's instructions to merge changelog updates and release the tag.