Skip to content

Commit 92a27b4

Browse files
committed
Merge pull request #2800 from mboersma/update-rel-docs
docs(releases): update with major/minor and patch procedures
2 parents eb65ea7 + 0df3128 commit 92a27b4

1 file changed

Lines changed: 174 additions & 93 deletions

File tree

docs/contributing/releases.rst

Lines changed: 174 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -6,122 +6,203 @@
66
Release Checklist
77
=================
88

9-
These instructions are to assist the Deis maintainers with creating a new Deis
10-
product release. Please keep this document up-to-date with any changes in this process.
11-
12-
deis repo
13-
---------
14-
- If this release was managed as a milestone in GitHub:
15-
* Create the next `deis milestone`_
16-
* Move any `deis open issues`_ from the current release to the next milestone
17-
* Close the current `deis milestone`_
18-
- Create a branch for the release PR: ``git checkout -b release-X.Y.Z``
19-
- Update CHANGELOG.md using the `changelog script`_
20-
* ``./contrib/util/generate-changelog.sh vU.V.W | cat - CHANGELOG.md > tmp && mv tmp CHANGELOG.md``
21-
substituting the previous release for vU.V.W.
22-
* proofread the new CHANGELOG.md to ensure it was generated correctly and edit ``HEAD`` at the top
23-
to vX.Y.Z (the current release)
24-
- Update version strings with the ``bumpver`` tool:
9+
This document assists maintainers with creating a new Deis product release.
10+
Please update it to agree with any changes in the process.
11+
12+
Follow these instructions from top to bottom, skipping the sections that do
13+
not apply.
14+
15+
16+
Patch Release
17+
-------------
18+
19+
- Check out the previous release tag
20+
21+
- ``git checkout vA.B.C``
22+
23+
- Pull in specific bug-fix commits
24+
25+
- ``git cherry-pick <commit-ish>...``
26+
27+
- Bump the patch version numbers:
2528

2629
.. code-block:: console
2730
28-
$ ./contrib/bumpver/bumpver X.Y.Z \
29-
version/version.go \
31+
$ ./contrib/bumpver/bumpver -f A.B.C A.B.D \
3032
README.md \
3133
client/deis.py \
3234
client/setup.py \
3335
contrib/coreos/user-data.example \
3436
controller/deis/__init__.py \
37+
deisctl/cmd/cmd.go \
3538
deisctl/deis-version \
36-
deisctl/deisctl.go \
37-
docs/contributing/test_plan.rst \
3839
docs/installing_deis/install-deisctl.rst \
3940
docs/installing_deis/install-platform.rst \
40-
docs/managing_deis/upgrading-deis.rst
41+
docs/managing_deis/upgrading-deis.rst \
42+
docs/reference/api-v1.1.rst \
43+
docs/troubleshooting_deis/index.rst \
44+
version/version.go
4145
42-
- Edit deisctl/cmd/cmd.go and change the default in the RefreshUnits usage string
43-
(near the bottom of the file) from ``[master]`` to ``[vX.Y.Z]``.
44-
- Examine the output of ``git grep vU.V.W`` to ensure that no old version strings
45-
were missed
46-
- Commit and push the deis/deis release and tag
47-
* ``git commit -a -m 'chore(release): update version to vX.Y.Z'``
48-
* ``git push origin release-X.Y.Z``
49-
- When the PR is approved and merged, tag it in master
50-
* ``git checkout master && git pull``
51-
* ``git tag vX.Y.Z``
52-
* ``git push --tags origin vX.Y.Z``
53-
- Trigger all deis-cli and deisctl builder jobs at ci.deis.io. When they finish, verify that
54-
the current binary installers are publicly downloadable from the opdemand S3 bucket.
55-
- Trigger the test-master job, supplying vX.Y.Z as the version
56-
- When test-master completes, double-check images at Docker Hub to verify tags are published
57-
- Publish CLI to pypi.python.org
58-
- ``cd client && python setup.py sdist upload``
59-
- use testpypi.python.org first to ensure there aren't any problems
60-
61-
deis.io repo
62-
------------
63-
- Update deis.io installer scripts to point to new versions by default
64-
* update https://github.com/deis/deis.io/blob/gh-pages/deis-cli/install.sh
65-
* update https://github.com/deis/deis.io/blob/gh-pages/deisctl/install.sh
66-
67-
Documentation
68-
-------------
69-
- (CHANGELOG.md files were regenerated and committed above.)
70-
- Docs are automatically published to http://docs.deis.io (the preferred alias
71-
for deis.readthedocs.org)
72-
- Log in to the http://deis.readthedocs.org admin
73-
* add the current release to the list of published builds
74-
* remove the oldest release from the list of published builds
75-
* rebuild all published versions so their "Versions" index links
76-
are updated
77-
- Publish docs to pythonhosted.org/deis
78-
* from the project root, run ``make -C docs clean zipfile``
79-
* the zipfile will be at **docs/docs.zip**
80-
* log in to http://pypi.python.org/ and use the web form at the
81-
`Deis Pypi`_ page to upload the zipfile
82-
- Check documentation for deis/* projects at the `Docker Hub`_
83-
* click "Settings" for each project (deis/controller, deis/cache, etc.)
84-
* paste the contents of each README.md into the "long description" field if
85-
there are discrepencies
86-
- For a milestone release, create release notes docs
87-
* follow the format of previous `release notes`_
88-
* summarize all work done since the previous release
89-
* visit all deis/* project issues to make sure we don't
90-
miss any contributors for the "Community Shout-Outs" section
91-
* include "what's next" and "future directions" sections
92-
* add Markdown version of release notes to `deis/deis.io`_ website project
93-
- For a patch release, paste the new CHANGELOG.md section as GitHub release notes
94-
95-
Post-Release
96-
------------
97-
- Update the #deis IRC channel topic to reference the newly released version
98-
- For a milestone release, update HipChat channel topics to reference the
99-
next planned version
100-
- Create a branch for the post-release PR: ``git checkout -b release-X.Y.Z+git``
101-
- Update version strings to vX.Y.Z+git with the ``bumpver`` tool:
46+
- Update the CHANGELOG to include all commits since the last release
47+
48+
- ``./contrib/util/generate-changelog.sh vA.B.C | cat - CHANGELOG.md > tmp && mv tmp CHANGELOG.md``
49+
- change ``HEAD`` at the top to ``vA.B.D`` (the new release)
50+
- remove any empty sections and proofread for consistency
51+
52+
- ``git grep A.B.C`` to ensure that no old version strings were missed
53+
54+
- Commit and push the tag
55+
56+
- ``git commit -a -m 'chore(release): update version to vA.B.D'``
57+
- ``git tag vA.B.D``
58+
- ``git push --tags origin vA.B.D``
59+
60+
61+
Major or Minor Release
62+
----------------------
63+
64+
- Move any open issues to the next `deis milestone`_, then close this one
65+
- Check out and update the Deis repo master branch
66+
67+
- ``git checkout master && git pull``
68+
69+
- Bump the major or minor version numbers
10270

10371
.. code-block:: console
10472
105-
$ ./contrib/bumpver/bumpver X.Y.Z+git \
106-
version/version.go \
73+
$ ./contrib/bumpver/bumpver -f A.B.D-dev A.B.D \
10774
client/deis.py \
108-
deisctl/deis-version \
109-
deisctl/deisctl.go \
75+
client/setup.py \
11076
controller/deis/__init__.py \
111-
README.md
77+
deisctl/deis-version \
78+
version/version.go
79+
80+
$ ./contrib/bumpver/bumpver -f A.B.C A.B.D \
81+
README.md \
82+
contrib/coreos/user-data.example \
83+
docs/installing_deis/install-deisctl.rst \
84+
docs/installing_deis/install-platform.rst \
85+
docs/managing_deis/upgrading-deis.rst \
86+
docs/reference/api-v1.1.rst \
87+
docs/troubleshooting_deis/index.rst
88+
89+
- Edit deisctl/cmd/cmd.go and change the default in the RefreshUnits usage string
90+
(near the bottom of the file) from ``[master]`` to ``[vA.B.D]``.
91+
92+
- Update the CHANGELOG to include all commits since the last release
93+
94+
- ``./contrib/util/generate-changelog.sh vA.B.C | cat - CHANGELOG.md > tmp && mv tmp CHANGELOG.md``
95+
- change ``HEAD`` at the top to ``vA.B.D`` (the new release)
96+
- remove any empty sections and proofread for consistency
97+
98+
- ``git grep A.B.C`` to ensure that no old version strings were missed
99+
100+
- Commit and push the tag to master
101+
102+
- ``git commit -a -m 'chore(release): update version to vA.B.D'``
103+
- ``git push origin master``
104+
- ``git tag vA.B.D``
105+
- ``git push --tags origin vA.B.D``
106+
107+
108+
Any Release
109+
-----------
110+
111+
- Trigger CI jobs manually at https://ci.deis.io/, specifying the new vA.B.D tag
112+
113+
- build-deis-cli-installer-darwin
114+
- build-deis-cli-installer-linux
115+
- build-deisctl-installer-darwin
116+
- build-deisctl-installer-linux
117+
- *after* these client jobs finish, trigger test-acceptance
118+
119+
- Publish Deis CLI to pypi.python.org
120+
121+
- ``pushd client && python setup.py sdist upload && popd``
122+
123+
- Publish docs to pythonhosted.org/deis
124+
125+
- ``make -C docs clean zipfile``
126+
- upload docs/docs.zip to the web form at the `Deis pypi`_ page
127+
128+
- Update the installer scripts at `deis/deis.io`_ to reference new version A.B.D
129+
130+
- https://github.com/deis/deis.io/blob/gh-pages/deis-cli/install.sh
131+
- https://github.com/deis/deis.io/blob/gh-pages/deisctl/install.sh
132+
133+
- Update published doc versions at ReadTheDocs
134+
135+
- log in to the https://readthedocs.org/ admin
136+
- add the current release to the published versions
137+
- remove the oldest version from the list of published builds
138+
- rebuild all published versions so their "Versions" index links update
139+
140+
- Update the Homebrew install recipes for ``deis`` and ``deisctl`` with PRs
141+
142+
- https://github.com/Homebrew/homebrew/blob/master/Library/Formula/deis.rb
143+
(check for updated python requirements too)
144+
- https://github.com/Homebrew/homebrew/pull/34967
145+
146+
- Update #deis IRC channel topic to reference new version
147+
148+
149+
Patch Release
150+
-------------
151+
152+
- Bump the version numbers in master to the new release
153+
154+
.. code-block:: console
155+
156+
./contrib/bumpver/bumpver -f A.B.C A.B.D \
157+
README.md \
158+
contrib/coreos/user-data.example \
159+
docs/installing_deis/install-deisctl.rst \
160+
docs/installing_deis/install-platform.rst \
161+
docs/managing_deis/upgrading-deis.rst \
162+
docs/reference/api-v1.1.rst \
163+
docs/troubleshooting_deis/index.rst
164+
165+
- ``git commit -a -m 'chore(release): update version in master to vA.B.D'``
166+
- ``git push origin master``
167+
168+
- Create `release notes`_ on GitHub
169+
170+
- copy and paste the newly added CHANGELOG.md section as the body
171+
- preface with an explanatory paragraph if necessary, for example to reference
172+
security fixes or point out upgrade details
173+
174+
175+
Major or Minor Release
176+
----------------------
112177

113178
- Edit deisctl/cmd/cmd.go and change the default in the RefreshUnits usage string
114-
(near the bottom of the file) from ``[vX.Y.Z]`` to ``[master]``.
115-
- Create a pull request for vX.Y.Z+git
116-
* ``git commit -a -m 'chore(release): update version in master to vX.Y.Z+git'``
117-
- Ensure that this PR is merged before others are allowed to be merged!
179+
(near the bottom of the file) from ``[vA.B.D]`` to ``[master]``
180+
- Bump the version numbers in master to the next planned with ``-dev``
181+
182+
.. code-block:: console
183+
184+
$ ./contrib/bumpver/bumpver -f A.B.D A.B.E-dev \
185+
client/deis.py \
186+
client/setup.py \
187+
controller/deis/__init__.py \
188+
deisctl/deis-version \
189+
version/version.go
190+
191+
- ``git commit -a -m 'chore(release): update version in master to vA.B.D'``
192+
- ``git push origin master``
193+
194+
- Create release notes blog post at `deis/deis.io`_ following previous formats
195+
- Create `release notes`_ at GitHub
196+
197+
- copy and paste from the previous blog post
198+
- remove Jekyll-specific headers and ``<!-- more -->`` tag
199+
200+
- Update HipChat channel topic to reference the next planned version
118201

119202

120203
.. _`deis milestone`: https://github.com/deis/deis/issues/milestones
121204
.. _`deis open issues`: https://github.com/deis/deis/issues?state=open
122205
.. _`changelog script`: https://github.com/deis/deis/blob/master/contrib/util/generate-changelog.sh
123206
.. _`release notes`: https://github.com/deis/deis/releases
124-
.. _`aws-eng S3 bucket`: https://s3-us-west-2.amazonaws.com/opdemand/
125-
.. _`Deis Pypi`: https://pypi.python.org/pypi/deis/
126-
.. _`Docker Hub`: https://hub.docker.com/
207+
.. _`Deis pypi`: https://pypi.python.org/pypi/deis/
127208
.. _`deis/deis.io`: https://github.com/deis/deis.io

0 commit comments

Comments
 (0)