Skip to content

Commit dd40d04

Browse files
author
Matthew Fisher
committed
docs(release-checklist): bumping client/server versions
1 parent 1dae122 commit dd40d04

1 file changed

Lines changed: 41 additions & 10 deletions

File tree

src/roadmap/release-checklist.md

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,27 @@ A release consists of the following artifacts:
3838
images referenced above. For example, if `$WORKFLOW_RELEASE` is `2.0.0-v2.0.0`, the new chart would
3939
be in a new directory called `workflow-v2.0.0`.
4040

41-
# Step 1: Cut repo branches and push image tags
41+
# Step 1: Bump Client and Server Versions
42+
43+
Before cutting the repo branches, the client and server versions need to be updated to the new
44+
version.
45+
46+
1. Make a PR to bump [the client version][client-platform-version]
47+
2. Make a PR to bump [the server version][server-platform-version]
48+
49+
If necessary, you will also need to bump the API version. This version number is only bumped if any
50+
API-related changes have been made this release. To do this:
51+
52+
1. Make a PR to bump [the SDK API version](https://github.com/deis/controller-sdk-go/blob/master/deis.go#L92)
53+
2. Make a PR to bump [the client version of the SDK](https://github.com/deis/workflow-cli/blob/master/glide.yaml#L18) and run `glide up`
54+
3. Make a PR to bump [the server API version](https://github.com/deis/controller/blob/master/rootfs/api/__init__.py#L5)
55+
4. Make a PR to add [documentation for the new API version](https://github.com/deis/workflow/pull/357)
56+
57+
!!! important
58+
59+
make sure to get all these PRs merged before proceeding to the next step.
60+
61+
# Step 2: Cut repo branches and push image tags
4262

4363
Once the release milestone is cleared of tickets in the workflow component repos, the release branches can be cut.
4464

@@ -53,7 +73,7 @@ be in a new directory called `workflow-v2.0.0`.
5373
deisrel branches create --name="release-${WORKFLOW_RELEASE} --ref="master" --yes=true
5474
```
5575

56-
# Step 2: Update Jenkins Jobs
76+
# Step 3: Update Jenkins Jobs
5777

5878
We'll need to update the `WORKFLOW_RELEASE` value used by all relevant Jenkins jobs, particularly so the [workflow-test-release](https://ci.deis.io/job/workflow-test-release/) job can kick off automatically once the `release-${WORKFLOW_RELEASE}` branch is pushed to in `Step 3` below. Update this value in the [common.groovy](https://github.com/deis/jenkins-jobs/blob/master/common.groovy) file and push this change to master:
5979

@@ -66,7 +86,7 @@ We'll need to update the `WORKFLOW_RELEASE` value used by all relevant Jenkins j
6686

6787
As of this writing, the e2e tests run on a GKE cluster using default internal (minio) storage. The e2e tests can run using supported external storage permutations via the [storage_backend_e2e](https://ci.deis.io/job/storage_backend_e2e/) job, providing `STORAGE_TYPE` of 'gcs' and 'aws', along with the `HELM_REMOTE_BRANCH` updated to `release-${WORKFLOW_RELEASE}` after the release chart is created in `Step 3` below.
6888

69-
# Step 3: Create New Helm Classic Charts
89+
# Step 4: Create New Helm Classic Charts
7090

7191
Next, we'll create new [Helm Classic](https://github.com/helm/helm-classic) charts so that we can "stage" a
7292
version of our release for testing. Here is the current process to do so:
@@ -114,7 +134,7 @@ version of our release for testing. Here is the current process to do so:
114134

115135
9. Open a pull request from your branch to merge into `master` on https://github.com/deis/charts
116136

117-
# Step 4: Update Documentation
137+
# Step 5: Update Documentation
118138

119139
Create a new pull request against deis/workflow, updating all references of the old release to
120140
`$WORKFLOW_RELEASE`. Use `git grep $WORKFLOW_PREV_RELEASE` and `git grep
@@ -124,7 +144,7 @@ Also, note there may be occurrences of an older release (prior to
124144
`$WORKFLOW_PREV_RELEASE`) in `upgrading-workflow.md`. These should be changed to
125145
`$WORKFLOW_PREV_RELEASE`.
126146

127-
# Step 5: Manual Testing
147+
# Step 6: Manual Testing
128148

129149
After the chart is created with the immutable Docker image tags that represent the final images
130150
(i.e. the ones that will be re-tagged to the immutable release tag, such as `v2.0.0`), it
@@ -159,7 +179,7 @@ When testing shows no further issues and the release chart is ready to ship, mak
159179
If non-release-specific amendments have been made to the release chart that do
160180
not exist in the `workflow-dev`, be sure to PR said changes for this chart as well.
161181

162-
# Step 6: Tag and Push Docker Images
182+
# Step 7: Tag and Push Docker Images
163183

164184
It's time to retag each individual Docker image with the 'official' `$WORKFLOW_RELEASE` value in the `deis` [quay.io](https://quay.io/organization/deis) org.
165185

@@ -169,7 +189,7 @@ To do so, simply run the following `deisrel` command:
169189
deisrel docker retag $WORKFLOW_RELEASE --new-org="deis -ref release-$WORKFLOW_RELEASE"
170190
```
171191

172-
# Step 7: Update Changelogs
192+
# Step 8: Update Changelogs
173193

174194
At this point, part of the first part and all of the second part of the release is complete.
175195
That is, the Helm Classic chart for the new Workflow version is done, and new Docker versions for all
@@ -201,7 +221,7 @@ git push -u $YOUR_FORK_REMOTE release-$WORKFLOW_RELEASE_SHORT
201221

202222
Before you continue, ensure pull requests in all applicable repositories are reviewed, and merge them.
203223

204-
# Step 8: Tag and Push Git Repositories
224+
# Step 9: Tag and Push Git Repositories
205225

206226
The final step of the release process is to tag each git repository, and push the tag to each
207227
GitHub project. To do so, simply run the below command in the `deisrel` repository:
@@ -210,14 +230,14 @@ GitHub project. To do so, simply run the below command in the `deisrel` reposito
210230
deisrel git tag --ref release-$WORKFLOW_RELEASE $WORKFLOW_RELEASE
211231
```
212232

213-
# Step 9: Close GitHub Milestones
233+
# Step 10: Close GitHub Milestones
214234

215235
Close the github milestone by creating a new pull request at
216236
[seed-repo](https://github.com/deis/seed-repo). Any changes merged to master on that repository
217237
will be applied to all of the component projects. If there are open issues attached to the
218238
milestone, move them to the next upcoming milestone before merging the pull request.
219239

220-
# Step 10: Let Everyone Know
240+
# Step 11: Let Everyone Know
221241

222242
Jump in #company on slack and let folks know that the release has been cut! This will let
223243
folks in supporting functions know that they should start the release support process including
@@ -230,3 +250,14 @@ deisrel changelog global $PREVIOUS_TAG $WORKFLOW_RELEASE
230250
```
231251

232252
You are now done with the release.
253+
254+
# Step 12: Bump Client and Server Versions to the Next Development Version
255+
256+
After finishing the release, you'll now need to advance the client and server versions to the next
257+
targeted release. For example, if `v2.1.0` was just cut and the next release on the roadmap is
258+
`v2.2.0`, make a PR to bump the [client][client-platform-version] and
259+
[server][server-platform-version] versions to `v2.2.0-dev`.
260+
261+
262+
[client-platform-version]: https://github.com/deis/workflow-cli/blob/master/version/version.go#L4
263+
[server-platform-version]: https://github.com/deis/controller/blob/master/rootfs/deis/__init__.py#L7

0 commit comments

Comments
 (0)