@@ -55,49 +55,59 @@ upgrading to a patch or to a minor release will not break anything.
5555Most Deis projects are "components" which produce a Docker image or binary executable as a
5656deliverable. This section leads a maintainer through creating a component release.
5757
58- ### Step 1: Update Code and Set Environment variables
58+ ### Step 1: Update Code and Run the Release Tool
5959
60- In the component repository, update from the GitHub remote and ensure ` HEAD ` is the commit
61- intended for release. Major or minor releases should happen on the master branch. Patch releases
60+ Major or minor releases should happen on the master branch. Patch releases
6261should check out the previous release tag and cherry-pick specific commits from master.
6362
64- Make sure you have the [ deisrel] [ ] release tool in your ` $PATH ` .
63+ Make sure you have the [ deisrel] [ ] release tool in your search ` $PATH ` .
64+
65+ Run ` deisrel release ` once with a fake semver tag to proofread the changelog content. (If ` HEAD `
66+ of master is not what is intended for the release, add the ` --sha ` flag as described
67+ in ` deisrel release --help ` .)
6568
66- Double-check that ` git log ` looks correct, then set some environment variables:
6769``` bash
68- export COMPONENT=${PWD##*/ }
69- export OLD_RELEASE=$( git describe --abbrev=0 --tags)
70- export NEW_SHA=$( git rev-parse --short HEAD)
71- deisrel changelog individual $COMPONENT unknown
72- export NEW_RELEASE=v2.2.1 # changelog agrees it's a patch release
73- ```
70+ $ deisrel release controller v0.0.0
71+ Doing a dry run of the component release...
72+ skipping commit 943a49267eeb28546819a266654806cfcbae0e38
7473
75- ### Step 2: Push the Release Tag
74+ Creating changelog for controller with tag v2.8.1 through commit 943a49267eeb28546819a266654806cfcbae0e38
7675
77- Generate the CHANGELOG with the [ ` deisrel ` ] ( https://github.com/deis/deisrel.git ) tool and paste
78- it into an annotation on the new release tag. Edit out any unnecessary blank lines. Then push the
79- new release tag to the GitHub repository:
76+ # ## v2.8.1 -> v0.0.0
8077
81- ``` bash
82- deisrel changelog individual $COMPONENT $NEW_RELEASE | pbcopy
83- git tag -a $NEW_RELEASE # paste the CHANGELOG into your editor and save
84- git push upstream $NEW_RELEASE
78+ # ### Fixes
79+
80+ - [` 615b834` ](https://github.com/deis/controller/commit/615b834f39cb68a854cc1f1e2f0f82d862ea2731) boot: Ensure DEIS_DEBUG==true for debug output
8581```
8682
87- ### Step 3: Put CHANGELOG in GitHub Release Notes
83+ Based on the changelog content, determine whether the component deserves a minor or patch
84+ release. Run the command again with that semver tag and ` --dry-run=false ` . You will still be
85+ asked for confirmation before the release is created:
86+ ``` bash
87+ $ deisrel release controller v2.8.2 --dry-run=false
88+ skipping commit 943a49267eeb28546819a266654806cfcbae0e38
8889
89- Paste the same CHANGELOG from the previous step into the body of release notes for the component
90- in GitHub. In the "Release Title" field, use the project & component with its release, such as
91- "Deis Controller v2.2.1":
90+ Creating changelog for controller with tag v2.8.1 through commit 943a49267eeb28546819a266654806cfcbae0e38
9291
93- ``` bash
94- deisrel changelog individual $COMPONENT $NEW_RELEASE | pbcopy
95- open https://github.com/deis/$COMPONENT /releases/new? tag=$NEW_RELEASE
92+ # ## v2.8.1 -> v2.8.2
93+
94+
95+ # ### Fixes
96+
97+ - [` 615b834` ](https://github.com/deis/controller/commit/615b834f39cb68a854cc1f1e2f0f82d862ea2731) boot: Ensure DEIS_DEBUG==true for debug output
98+
99+
100+ Please review the above changelog contents and ensure:
101+ 1. All intended commits are mentioned
102+ 2. The changes agree with the semver release tag (major, minor, or patch)
103+
104+ Create release for Deis Controller v2.8.2? [y/n]: y
105+ New release is available at https://github.com/deis/controller/releases/tag/v2.8.2
96106```
97107
98- ### Step 4 : Verify the Component is Available
108+ ### Step 2 : Verify the Component is Available
99109
100- Tagging the component (see [ Step 2 ] ( /roadmap/releases/#step-2-push- the-release-tag ) )
110+ Tagging the component (see [ Step 1 ] ( /roadmap/releases/#step-1-update-code-and-run- the-release-tool ) )
101111starts a CI job that eventually results in an artifact being made available for public download.
102112Please see the [ CI flow diagrams] ( https://github.com/deis/jenkins-jobs/#flow ) for details.
103113
0 commit comments