github.com/technosophos/deis@v1.7.1-0.20150915173815-f9005256004b/docs/roadmap/releases.rst (about) 1 :title: Releases 2 :description: The Deis software release process. 3 4 .. _releases: 5 6 Release Checklist 7 ================= 8 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: 28 29 .. code-block:: console 30 31 $ ./contrib/bumpver/bumpver -f A.B.C A.B.D \ 32 README.md \ 33 builder/rootfs/Dockerfile \ 34 builder/rootfs/usr/local/src/slugbuilder/Dockerfile \ 35 builder/rootfs/usr/local/src/slugrunner/Dockerfile \ 36 cache/image/Dockerfile \ 37 client/deis-version \ 38 contrib/coreos/user-data.example \ 39 controller/deis/__init__.py \ 40 controller/Dockerfile \ 41 database/Dockerfile \ 42 deisctl/client/client.go \ 43 deisctl/deis-version \ 44 docs/_includes/_get-the-source.rst \ 45 docs/installing_deis/install-deisctl.rst \ 46 docs/installing_deis/install-platform.rst \ 47 docs/managing_deis/upgrading-deis.rst \ 48 docs/reference/api-v1.6.rst \ 49 docs/troubleshooting_deis/index.rst \ 50 logger/image/Dockerfile \ 51 logspout/image/Dockerfile \ 52 mesos/template \ 53 mesos/zookeeper/Dockerfile \ 54 publisher/image/Dockerfile \ 55 registry/Dockerfile \ 56 router/image/Dockerfile \ 57 store/base/Dockerfile \ 58 swarm/image/Dockerfile \ 59 version/version.go 60 61 - Update the CHANGELOG to include all commits since the last release. Since 62 ``contrib/util/generate-changelog.sh`` only works for merges, you'll have 63 to manually add the changes to the CHANGELOG. 64 65 - ``git grep A.B.C`` to ensure that no old version strings were missed 66 67 - Commit and push the tag 68 69 - ``git commit -a -m 'chore(release): update version to vA.B.D'`` 70 - ``git tag vA.B.D`` 71 - ``git push --tags origin vA.B.D`` 72 73 74 Major or Minor Release 75 ---------------------- 76 77 - Move any open issues to the next `deis milestone`_, then close this one 78 - Check out and update the Deis repo master branch 79 80 - ``git checkout master && git pull`` 81 82 - Bump the major or minor version numbers 83 84 .. code-block:: console 85 86 $ ./contrib/bumpver/bumpver -f A.B.D-dev A.B.D \ 87 client/deis-version \ 88 controller/deis/__init__.py \ 89 deisctl/deis-version \ 90 docs/reference/api-v1.5.rst \ 91 version/version.go 92 93 $ ./contrib/bumpver/bumpver -f A.B.C A.B.D \ 94 README.md \ 95 contrib/coreos/user-data.example \ 96 docs/_includes/_get-the-source.rst \ 97 docs/installing_deis/install-deisctl.rst \ 98 docs/installing_deis/install-platform.rst \ 99 docs/managing_deis/upgrading-deis.rst \ 100 docs/troubleshooting_deis/index.rst 101 102 - Edit deisctl/client/client.go and change the default in the RefreshUnits usage string 103 (near the bottom of the file) from ``[master]`` to ``[vA.B.D]``. 104 105 - Find and replace "A.B.D-dev" with "A.B.D" in all project Dockerfiles. 106 107 - Update the CHANGELOG to include all commits since the last release 108 109 - ``./contrib/util/generate-changelog.sh vA.B.C | cat - CHANGELOG.md > tmp && mv tmp CHANGELOG.md`` 110 - change ``HEAD`` at the top to ``vA.B.D`` (the new release) 111 - remove any empty sections and proofread for consistency 112 113 - ``git grep A.B.C`` to ensure that no old version strings were missed 114 115 - Commit and push the tag to master 116 117 - ``git commit -a -m 'chore(release): update version to vA.B.D'`` 118 - ``git push origin master`` 119 - ``git tag vA.B.D`` 120 - ``git push --tags origin vA.B.D`` 121 122 123 Any Release 124 ----------- 125 126 - If this release includes a new component, configure `test-acceptance`_ to publish it to Docker Hub 127 128 - Trigger CI jobs manually at https://ci.deis.io/, specifying the new vA.B.D tag 129 130 - build-deis-cli-installer-darwin 131 - build-deis-cli-installer-linux 132 - build-deisctl-installer-darwin 133 - build-deisctl-installer-linux 134 - *after* these client jobs finish, trigger test-acceptance 135 136 - Update the installer scripts at `deis/deis.io`_ to reference new version A.B.D 137 138 - https://github.com/deis/deis.io/blob/gh-pages/deis-cli/install.sh 139 - https://github.com/deis/deis.io/blob/gh-pages/deisctl/install.sh 140 141 - Update published doc versions at ReadTheDocs 142 143 - log in to the https://readthedocs.org/ admin 144 - add the current release to the published versions 145 - remove the oldest version from the list of published builds 146 - rebuild all published versions so their "Versions" index links update 147 148 - Update #deis IRC channel topic to reference new version 149 150 151 Patch Release 152 ------------- 153 154 - Bump the version numbers in master to the new release 155 156 .. code-block:: console 157 158 ./contrib/bumpver/bumpver -f A.B.C A.B.D \ 159 README.md \ 160 contrib/coreos/user-data.example \ 161 docs/_includes/_get-the-source.rst \ 162 docs/installing_deis/install-deisctl.rst \ 163 docs/installing_deis/install-platform.rst \ 164 docs/managing_deis/upgrading-deis.rst \ 165 docs/reference/api-v1.6.rst \ 166 docs/troubleshooting_deis/index.rst 167 168 - ``git commit -a -m 'chore(release): update version in master to vA.B.D'`` 169 - ``git push origin master`` 170 171 - Create `release notes`_ on GitHub 172 173 - copy and paste the newly added CHANGELOG.md section as the body 174 - preface with an explanatory paragraph if necessary, for example to reference 175 security fixes or point out upgrade details 176 177 178 Major or Minor Release 179 ---------------------- 180 181 - Edit deisctl/client/client.go and change the default in the RefreshUnits usage string 182 (near the bottom of the file) from ``[vA.B.D]`` to ``[master]`` 183 - Bump the version numbers in master to the next planned with ``-dev`` 184 185 .. code-block:: console 186 187 $ ./contrib/bumpver/bumpver -f A.B.D A.B.E-dev \ 188 client/deis-version \ 189 controller/deis/__init__.py \ 190 deisctl/deis-version \ 191 version/version.go 192 193 - Find and replace "A.B.D" with "A.B.D-dev" in all project Dockerfiles. 194 - ``git commit -a -m 'chore(release): update version in master to vA.B.D-dev'`` 195 - ``git push origin master`` 196 197 - Create release notes blog post at `deis/deis.io`_ following previous formats 198 - Create `release notes`_ at GitHub 199 200 - copy and paste from the previous blog post 201 - remove Jekyll-specific headers and ``<!-- more -->`` tag 202 203 - Update Slack channel topic to reference the next planned version 204 205 206 .. _`deis milestone`: https://github.com/deis/deis/issues/milestones 207 .. _`deis open issues`: https://github.com/deis/deis/issues?state=open 208 .. _`changelog script`: https://github.com/deis/deis/blob/master/contrib/util/generate-changelog.sh 209 .. _`release notes`: https://github.com/deis/deis/releases 210 .. _`deis/deis.io`: https://github.com/deis/deis.io 211 .. _`test-acceptance`: https://ci.deis.io/job/test-acceptance/configure