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