|
| 1 | +# Release Process |
| 2 | + |
| 3 | +The Kubernetes controller-runtime Project is released on an as-needed basis. The process is as follows: |
| 4 | + |
| 5 | +**Note:** Releases are done from the `release-MAJOR.MINOR` branches. For PATCH releases is not required |
| 6 | +to create a new branch you will just need to ensure that all big fixes are cherry-picked into the respective |
| 7 | +`release-MAJOR.MINOR` branch. To know more about versioning check https://semver.org/. |
| 8 | + |
| 9 | +## How to do a release |
| 10 | + |
| 11 | +### Create the new branch and the release tag |
| 12 | + |
| 13 | +1. Create a new branch `git checkout -b release-<MAJOR.MINOR>` from master |
| 14 | +2. Push the new branch to the remote repository |
| 15 | + |
| 16 | +### Now, let's generate the changelog |
| 17 | + |
| 18 | +1. Create the changelog from the new branch `release-<MAJOR.MINOR>` (`git checkout release-<MAJOR.MINOR>`). |
| 19 | +You will need to use the [kubebuilder-release-tools][kubebuilder-release-tools] to generate the notes. See [here][release-notes-generation] |
| 20 | + |
| 21 | +> **Note** |
| 22 | +> - You will need to have checkout locally from the remote repository the previous branch |
| 23 | +> - Also, ensure that you fetch all tags from the remote `git fetch --all --tags` |
| 24 | +
|
| 25 | +### Draft a new release from GitHub |
| 26 | + |
| 27 | +1. Create a new tag with the correct version from the new `release-<MAJOR.MINOR>` branch |
| 28 | +2. Add the changelog on it and publish. Now, the code source is released ! |
| 29 | + |
| 30 | +### Add a new Prow test the for the new branch release |
| 31 | + |
| 32 | +1. Create a new prow test under [github.com/kubernetes/test-infra/tree/master/config/jobs/kubernetes-sigs/controller-runtime](https://github.com/kubernetes/test-infra/tree/master/config/jobs/kubernetes-sigs/controller-runtime) |
| 33 | +for the new `release-<MAJOR.MINOR>` branch. (i.e. for the `0.11.0` release see the PR: https://github.com/kubernetes/test-infra/pull/25205) |
| 34 | +2. Ping the infra PR in the controller-runtime slack channel for reviews. |
| 35 | + |
| 36 | +### Announce the new release: |
| 37 | + |
| 38 | +1. Publish on the Slack channel the new release, i.e: |
| 39 | + |
| 40 | +```` |
| 41 | +:announce: Controller-Runtime v0.12.0 has been released! |
| 42 | +This release includes a Kubernetes dependency bump to v1.24. |
| 43 | +For more info, see the release page: https://github.com/kubernetes-sigs/controller-runtime/releases. |
| 44 | + :tada: Thanks to all our contributors! |
| 45 | +```` |
| 46 | + |
| 47 | +2. An announcement email is sent to `kubebuilder@googlegroups.com` with the subject `[ANNOUNCE] Controller-Runtime $VERSION is released` |
0 commit comments