Release Instructions¶
Cherry-Picking Fixes¶
✋ Before you start, make sure you have created a release branch (e.g. release-3.3
) and it's passing CI.
Please make sure that all patch releases (e.g. v3.3.5
) should be released from their associated minor release branches (e.g. release-3.3
)
to work well with our versioned website.
Then get a list of commits you may want to cherry-pick:
./hack/cherry-pick.sh release-3.3 "fix"
./hack/cherry-pick.sh release-3.3 "chore(deps)"
./hack/cherry-pick.sh release-3.3 "build"
./hack/cherry-pick.sh release-3.3 "ci"
To automatically cherry-pick, run the following:
./hack/cherry-pick.sh release-3.3 "fix" false
Then look for "failed to cherry-pick" in the log to find commits that fail to be cherry-picked and decide if a manual patch is necessary.
Ignore:
- Fixes for features only on
main
. - Dependency upgrades, unless they fix known security issues.
- Build or CI improvements, unless the release pipeline is blocked without them.
Cherry-pick the first commit. Run make test
locally before pushing. If the build timeouts the build caches may have
gone, try re-running.
Don't cherry-pick another commit until the CI passes. It is harder to find the cause of a new failed build if the last build failed too.
Cherry-picking commits one-by-one and then waiting for the CI will take a long time. Instead, cherry-pick each commit then
run make test
locally before pushing.
Publish Release¶
✋ Before you start, make sure the branch is passing CI.
Push a new tag to the release branch. E.g.:
git tag v3.3.4
git push upstream v3.3.4 # or origin if you do not use upstream
GitHub Actions will automatically build and publish your release. This takes about 1h. Set your self a reminder to check this was successful.
Update Changelog¶
Once the tag is published, GitHub Actions will automatically open a PR to update the changelog. Once the PR is ready, you can approve it, enable auto-merge, and then run the following to force trigger the CI build:
git branch -D create-pull-request/changelog
git fetch upstream
git checkout --track upstream/create-pull-request/changelog
git commit -s --allow-empty -m "chore: Force trigger CI"
git push upstream create-pull-request/changelog
Announce on Slack¶
Once the changelog updates have been merged, you should announce on our Slack channels, #argo-workflows
and #argo-announcements
.
See previous announcements as examples of what to write in the patch announcement.