Skip to content

Commit 4796796

Browse files
committed
docs(releases): update component release steps
Manual tasks are now mostly gone in favor of running the `deisrel release` command.
1 parent 6a62026 commit 4796796

1 file changed

Lines changed: 38 additions & 28 deletions

File tree

src/roadmap/releases.md

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -55,49 +55,59 @@ upgrading to a patch or to a minor release will not break anything.
5555
Most Deis projects are "components" which produce a Docker image or binary executable as a
5656
deliverable. 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
6261
should 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))
101111
starts a CI job that eventually results in an artifact being made available for public download.
102112
Please see the [CI flow diagrams](https://github.com/deis/jenkins-jobs/#flow) for details.
103113

0 commit comments

Comments
 (0)