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