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