-
Notifications
You must be signed in to change notification settings - Fork 5
Closed
Description
This issue can be closed when we have completed the following steps (in order).
Please ensure all artifacts (PRs, workflow runs, Tweets, etc) are linked from
this issue for posterity. Refer to this prior release issue for
examples of each step, assuming release v2.2.0 is being cut.
Code Freeze (February 9, 2026)
- Determine if any patch releases are needed in addition to this main release and open a new patch release issue for each.
- [In Crossplane Runtime]: Prepared the release branch
release-2.2:- Confirm that all security/critical dependency update PRs from Renovate are merged into
main - Created the release branch using the GitHub UI.
- (On the Main Branch) Created and merged a PR to add the new release branch to the
baseBrancheslist in.github/renovate.json5. - (On the Main Branch) Run the Tag workflow with the release candidate tag for the next release
v2.3.0-rc.0. Message suggested, but not required:Release candidate v2.3.0-rc.0. - (On the Release Branch) Run the Tag workflow with the release candidate tag for the next release
v2.2.0-rc.1(assuming the latest rc tag forv2.2.0isv2.2.0-rc.0). Message suggested, but not required:Release candidate v2.2.0-rc.1.
- Confirm that all security/critical dependency update PRs from Renovate are merged into
- [In Core Crossplane]: Prepared the release branch
release-2.2:- Confirm that all security/critical dependency update PRs from Renovate are merged into
main - Created the release branch using the GitHub UI.
- (On the Main Branch) created and merged a PR bumping the Crossplane Runtime dependency to the release candidate tag on main,
v2.3.0-rc.0. - (On the Release Branch) created and merged a PR bumping the Crossplane Runtime dependency to the release candidate tag on the release branch,
v2.2.0-rc.1. - (On the Main Branch) Run the Tag workflow with the release candidate tag for the next release,
v2.3.0-rc.0. Message suggested, but not required:Release candidate v2.3.0-rc.0. - (On the Main Branch) created and merged a PR to add the new release branch to the
baseBrancheslist in.github/renovate.json5.
- Confirm that all security/critical dependency update PRs from Renovate are merged into
- [In Core Crossplane]: Cut a Crossplane release candidate from the release branch
release-2.2:- (On the Release Branch) Run the Tag workflow with the release candidate tag for the release
v2.2.0-rc.1(assuming the latest rc tag forv2.2.0isv2.2.0-rc.0). Message suggested but not required:Release candidate v2.2.0-rc.1. - (On the Release Branch) Run the CI workflow and verified that the tagged build version exists on the releases.crossplane.io
buildchannel, e.g.build/release-2.2/v2.2.0-rc.1/...should contain all the relevant binaries. - (On the Release Branch) Run the Promote workflow with version
v2.2.0-rc.1and channelstable, ticking the box forThis is a pre-releaseand verify:- The tagged build version exists on the releases.crossplane.io
stablechannel atstable/v2.2.0-rc.1/.... - Ensured that the release candidate is visible on the stable helm repo with:
helm repo add crossplane-stable https://charts.crossplane.io/stable --force-update && helm search repo crossplane-stable --devel.
- The tagged build version exists on the releases.crossplane.io
- Published a new release for the tagged version as
pre-release, with the same name as the version, taking care of generating the changes list selecting as "Previous tag"v2.1.0, so the first of the releases for the previous minor.- Select the
Set as a pre-releaseandCreate a discussion for this releasecheckboxes. - Do NOT select the
Set as the latest releasecheckbox. - Use this example
for the body of the release.
- Select the
- Ensured that users have been notified about the release candidate on the
#announcementchannel of the Crossplane's Slack workspace.
- (On the Release Branch) Run the Tag workflow with the release candidate tag for the release
Release (February 17, 2026)
- Opened a docs release issue
- v1.20 will continue being supported, so remove any steps in the docs release process that remove v1.20 docs. v1.20 docs should not be deleted!
- Checked that the GitHub milestone for this release only contains closed issues.
- Cut a Crossplane Runtime version and consume it from Crossplane.
- [In Crossplane Runtime]:
- Run the Tag workflow on the
release-2.2branch with the proper release version,v2.2.0. Message suggested, but not required:Release v2.2.0. - Published a new release for the tagged version, with the same name as the version, taking care of generating the changes list selecting as "Previous tag"
v2.1.0, so the first of the releases for the previous minor.
- [ ] Update thebaseBrancheslist in.github/renovate.json5onmain, removing the now old unsupported release.
- Run the Tag workflow on the
- [In Core Crossplane]: (On the Release Branch) Update the Crossplane Runtime dependency to
v2.2.0.
- [In Crossplane Runtime]:
- (On the Release Branch) Run the Tag workflow with the proper release version,
v2.2.0. Message suggested, but not required:Release v2.2.0. - (On the Release Branch) Run the CI workflow and verified that the tagged build version exists on the releases.crossplane.io
buildchannel, e.g.build/release-2.2/v2.2.0/...should contain all the relevant binaries. - (On the Release Branch) Run the Promote workflow with channel
stableand verified that the tagged build version exists on the releases.crossplane.iostablechannel atstable/v2.2.0/.... - Select a release MVP from the community that had significant impact on the release and include recognition of them in the release notes and blog post.
- Published a new release for the tagged version, with the same name as the version and descriptive release notes
- generate the changes list by selecting the "Previous tag" as
v2.1.0, i.e., the first of the releases for the previous minor. - Ensure the release MVP is recognized in the release notes.
- Before publishing the release notes, set them as Draft and ask the rest of the team to double check them.
- generate the changes list by selecting the "Previous tag" as
- Checked that the docs release issue created previously has been completed.
- Updated, in a single PR, the following on
main:- The releases table in the
README.md, adding the new release version date as well as coarse dates for the next 3 releases, but keeping v1.20 in the table saying "TBD - critical fixes only"
- [ ] ThebaseBrancheslist in.github/renovate.json5, removing the now old unsupported release.
- The releases table in the
- Closed the GitHub milestone for this release.
- Request @jbw976 to perform a CloudFront cache invalidation on https://charts.crossplane.io/stable/ and https://releases.crossplane.io/stable/
- [ ] Publish a blog post about the release to the crossplane blog
- [ ] Ensure the release MVP is recognized in the blog post - Ensured that users have been notified of the release on all communication channels:
- Slack:
#announcementschannel on Crossplane's Slack workspace. - Twitter: reach out to a Crossplane maintainer or steering committee member, see OWNERS.md.
- Bluesky: same as Twitter
- LinkedIn: same as Twitter
- Slack:
-
Request @jbw976 to remove all old docs versions from Google Search(we're keeping the v1.20 docs alive) - Remove any extra permissions given to release team members for this release
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels