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