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