This document assists maintainers with creating a new Deis product release. Please update it to agree with any changes in the process.
Follow these instructions from top to bottom, skipping the sections that do not apply.
-
Check out the previous release tag
git checkout vA.B.C
-
Pull in specific bug-fix commits
git cherry-pick <commit-ish>...
-
Bump the patch version numbers:
$ ./contrib/bumpver/bumpver -f A.B.C A.B.D \
README.md \
builder/rootfs/Dockerfile \
builder/rootfs/usr/local/src/slugbuilder/Dockerfile \
builder/rootfs/usr/local/src/slugrunner/Dockerfile \
client/deis-version \
contrib/utils.sh \
contrib/coreos/user-data.example \
controller/deis/__init__.py \
controller/Dockerfile \
database/Dockerfile \
deisctl/client/client.go \
deisctl/deis-version \
docs/_includes/_get-the-source.rst \
docs/installing_deis/install-deisctl.rst \
docs/installing_deis/install-platform.rst \
docs/managing_deis/upgrading-deis.rst \
docs/reference/api-v1.7.rst \
docs/troubleshooting_deis/index.rst \
logger/image/Dockerfile \
logspout/image/Dockerfile \
mesos/template \
mesos/zookeeper/Dockerfile \
publisher/image/Dockerfile \
registry/Dockerfile \
router/Dockerfile \
store/base/Dockerfile \
swarm/image/Dockerfile \
version/version.go
-
Update the CHANGELOG to include all commits since the last release. Since
contrib/util/generate-changelog.shonly works for merges, you'll have to manually add the changes to the CHANGELOG. -
git grep A.B.Cto ensure that no old version strings were missed -
Commit and push the tag
git commit -a -m 'chore(release): update version to vA.B.D'git tag vA.B.Dgit push --tags origin vA.B.D
-
Move any open issues to the next deis milestone, then close this one
-
Check out and update the Deis repo master branch
git checkout master && git pull
-
Bump the major or minor version numbers
$ ./contrib/bumpver/bumpver -f A.B.D-dev A.B.D \
client/deis-version \
controller/deis/__init__.py \
deisctl/deis-version \
docs/reference/api-v1.7.rst \
version/version.go
$ ./contrib/bumpver/bumpver -f A.B.C A.B.D \
README.md \
contrib/utils.sh \
contrib/coreos/user-data.example \
docs/_includes/_get-the-source.rst \
docs/installing_deis/install-deisctl.rst \
docs/installing_deis/install-platform.rst \
docs/managing_deis/upgrading-deis.rst \
docs/troubleshooting_deis/index.rst
-
Edit deisctl/client/client.go and change the default in the RefreshUnits usage string (near the bottom of the file) from
[master]to[vA.B.D]. -
Find and replace "A.B.D-dev" with "A.B.D" in all project Dockerfiles.
-
Update the CHANGELOG to include all commits since the last release
./contrib/util/generate-changelog.sh vA.B.C | cat - CHANGELOG.md > tmp && mv tmp CHANGELOG.md- change
HEADat the top tovA.B.D(the new release) - remove any empty sections and proofread for consistency
-
git grep A.B.Cto ensure that no old version strings were missed -
Commit and push the tag to master
git commit -a -m 'chore(release): update version to vA.B.D'git push origin mastergit tag vA.B.Dgit push --tags origin vA.B.D
-
If this release includes a new component, configure test-acceptance to publish it to Docker Hub
-
Trigger CI jobs manually at https://ci.deis.io/, specifying the new vA.B.D tag
- build-deis-cli-installer-darwin
- build-deis-cli-installer-linux
- build-deisctl-installer-darwin
- build-deisctl-installer-linux
- after these client jobs finish, trigger test-acceptance
-
Update the installer scripts at deis/deis.io to reference new version A.B.D
-
Update published doc versions at ReadTheDocs
- log in to the https://readthedocs.org/ admin
- add the current release to the published versions
- remove the oldest version from the list of published builds
- rebuild all published versions so their "Versions" index links update
-
Update #deis IRC channel topic to reference new version
- Bump the version numbers in master to the new release
./contrib/bumpver/bumpver -f A.B.C A.B.D \
README.md \
contrib/utils.sh \
contrib/coreos/user-data.example \
docs/_includes/_get-the-source.rst \
docs/installing_deis/install-deisctl.rst \
docs/installing_deis/install-platform.rst \
docs/managing_deis/upgrading-deis.rst \
docs/reference/api-v1.7.rst \
docs/troubleshooting_deis/index.rst
-
git commit -a -m 'chore(release): update version in master to vA.B.D' -
git push origin master -
Create release notes on GitHub
- copy and paste the newly added CHANGELOG.md section as the body
- preface with an explanatory paragraph if necessary, for example to reference security fixes or point out upgrade details
- Edit deisctl/client/client.go and change the default in the RefreshUnits usage string
(near the bottom of the file) from
[vA.B.D]to[master] - Bump the version numbers in master to the next planned with
-dev
$ ./contrib/bumpver/bumpver -f A.B.D A.B.E-dev \
client/deis-version \
controller/deis/__init__.py \
deisctl/deis-version \
version/version.go
-
Find and replace "A.B.D" with "A.B.D-dev" in all project Dockerfiles.
-
git commit -a -m 'chore(release): update version in master to vA.B.D-dev' -
git push origin master -
Create release notes blog post at deis/deis.io following previous formats
-
Create release notes at GitHub
- copy and paste from the previous blog post
- remove Jekyll-specific headers and
<!-- more -->tag
-
Update Slack channel topic to reference the next planned version