You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1.[Install kustomize](https://kubectl.docs.kubernetes.io/installation/kustomize) if you haven't already.
17
14
18
-
4. Select the commit you would like to build the release from, most likely the
19
-
most recent commit at https://github.com/tektoncd/pruner/commits/main
20
-
and note the commit's hash.
15
+
1. Select the commit you would like to build the release from (NOTE: the commit is full (40-digit) hash.)
16
+
- Select the most recent commit on the ***main branch*** if you are cutting a major or minor release i.e. `x.0.0` or `0.x.0`
17
+
- Select the most recent commit on the ***`release-<version number>x` branch***, e.g. [`release-v0.3.x`](https://github.com/tektoncd/pruner/tree/release-v0.3.x) if you are patching a release i.e. `v0.3.4`.
21
18
22
-
5. Create environment variables for bash scripts in later steps.
19
+
1. Ensure the correct version of the release pipeline is installed on the cluster.
20
+
To do that, the selected commit should be checked-out locally
23
21
24
22
```bash
25
-
VERSION_TAG=# UPDATE THIS. Example: v0.6.2
26
-
PRUNER_RELEASE_GIT_SHA=# SHA of the release to be released
15. Watch logs of create-draft-release. On successful completion, a URL will be logged. Visit that URL and look through the release notes.
126
-
127
-
16. Manually add upgrade and deprecation notices based on the generated release notes. Double-check that the list of commits here matches your expectations
128
-
for the release. You might need to remove incorrect commits or copy/paste commits
129
-
from the release branch. Refer to previous releases to confirm the expected format.
130
-
131
-
17. Un-check the "This is a pre-release" checkbox since you're making a legit for-reals release!
132
-
133
-
18. Publish the GitHub release once all notes are correct and in order.
134
-
135
-
19. Edit `releases.md` on the `main` branch, add an entry for the release.
1. Watch logs of resulting pipeline run on pipeline `release-draft-oci`
150
+
151
+
1. On successful completion, a URL will be logged. Visit that URL and look through the release notes.
152
+
1. Manually add upgrade and deprecation notices based on the generated release notes
153
+
1. Double-check that the list of commits here matches your expectations
154
+
for the release. You might need to remove incorrect commits or copy/paste commits
155
+
from the release branch. Refer to previous releases to confirm the expected format.
156
+
157
+
1. Un-check the "This is a pre-release" checkbox since you're making a legit for-reals release!
158
+
159
+
1. Publish the GitHub release once all notes are correct and in order.
160
+
161
+
1. Create a branch for the release named `release-<version number>x`, e.g. [`release-v0.3.x`](https://github.com/tektoncd/pruner/tree/release-v0.3.x)
162
+
and push it to the repo https://github.com/tektoncd/pruner.
163
+
(This can be done on the Github UI.)
164
+
Make sure to fetch the commit specified in `PRUNER_RELEASE_GIT_SHA` to create the released branch.
165
+
> Background: The reason why we need to create a branch for the release named `release-<version number>x` is for future patch releases. Cherrypicked PRs for the patch release will be merged to this branch. For example, [v0.3.0](https://github.com/tektoncd/pruner/releases/tag/v0.3.0) has been already released, but later on we found that an important PR should have been included to that release. Therefore, we need to do a patch release i.e. v0.3.1 by cherrypicking this PR, which will trigger tekton-robot to create a new PR to merge the changes to the [release-v0.3.x branch](https://github.com/tektoncd/pruner/tree/release-v0.3.x).
166
+
167
+
1. If the release introduces a new minimum version of Kubernetes required,
168
+
edit `README.md` on `main` branch and add the new requirement with in the
169
+
"Required Kubernetes Version" section
170
+
171
+
1. Edit `releases.md` on the `main` branch, add an entry for the release.
136
172
- In case of a patch release, replace the latest release with the new one,
137
173
including links to docs and examples. Append the new release to the list
138
174
of patch releases as well.
139
-
- In case of a minor or major release, add a new entry for the
140
-
release, including links to docs and examples
175
+
- In case of a minor or major release, add a new entry for the
176
+
release, including links to docs and example
141
177
- Check if any release is EOL, if so move it to the "End of Life Releases"
142
178
section
143
179
144
-
20. Push & make PR for updated `releases.md`
180
+
1. Push & make PR for updated `releases.md` and `README.md`
145
181
146
-
21. Test release that you just made against your own cluster (note `--context my-dev-cluster`):
182
+
1. Test release that you just made against your own cluster (note `--context my-dev-cluster`):
147
183
148
184
```bash
149
185
# Test latest
@@ -152,13 +188,13 @@ from the release branch. Refer to previous releases to confirm the expected form
The dogfooding cluster is currently an OKE cluster in oracle cloud. we need the Oracle Cloud CLI client. Install oracle cloud cli (https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/cliinstall.htm)
1. **Important: Switch `kubectl` back to your own cluster by default.**
225
+
226
+
```bash
227
+
kubectl config use-context my-dev-cluster
228
+
```
229
+
230
+
## Cherry-picking commits for patch releases
231
+
232
+
The easiest way to cherry-pick a commit into a release branch is to use the "cherrypicker" plugin (see https://prow.tekton.dev/plugins for documentation).
233
+
To use the plugin, comment "/cherry-pick <branch-to-cherry-pick-onto>" on the pull request containing the commits that need to be cherry-picked.
234
+
Make sure this command is on its own line, and use one comment per branch that you're cherry-picking onto.
235
+
Automation will create a pull request cherry-picking the commits into the named branch, e.g. `release-v0.3.x`.
236
+
237
+
The cherrypicker plugin isn't able to resolve merge conflicts. If there are merge conflicts, you'll have to manually cherry-pick following these steps:
238
+
1. Fetch the branch you're backporting to and check it out:
239
+
```sh
240
+
git fetch upstream <branchname>
241
+
git checkout upstream/<branchname>
242
+
```
243
+
1. (Optional) Rename the local branch to make it easier to work with:
244
+
```sh
245
+
git switch -c <new-name-for-local-branch>
246
+
```
247
+
1. Find the 40-character commit hash to cherry-pick. Note: automation creates a new commit when merging contributors' commits into main.
248
+
You'll need to use the hash of the commit created by tekton-robot.
249
+
250
+
1. [Cherry-pick](https://git-scm.com/docs/git-cherry-pick) the commit onto the branch:
251
+
```sh
252
+
git cherry-pick <commit-hash>
253
+
```
254
+
1. Resolve any merge conflicts.
255
+
1. Finish the cherry-pick:
256
+
```sh
257
+
git add <changed-files>
258
+
git cherry-pick --continue
185
259
```
260
+
1. Push your changes to your fork and open a pull request against the upstream branch.
0 commit comments