github.com/mgood/deis@v1.0.2-0.20141120022609-9a185b756e7d/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  These instructions are to assist the Deis maintainers with creating a new Deis
    10  product release. Please keep this document up-to-date with any changes in this process.
    11  
    12  deis repo
    13  ---------
    14  - If this release was managed as a milestone in GitHub:
    15      * Create the next `deis milestone`_
    16      * Move any `deis open issues`_ from the current release to the next milestone
    17      * Close the current `deis milestone`_
    18  - Create a branch for the release PR: ``git checkout -b release-X.Y.Z``
    19  - Update CHANGELOG.md using the `changelog script`_
    20      * ``./contrib/util/generate-changelog.sh vU.V.W | cat - CHANGELOG.md > tmp && mv tmp CHANGELOG.md``
    21        substituting the previous release for vU.V.W.
    22      * proofread the new CHANGELOG.md to ensure it was generated correctly and edit ``HEAD`` at the top
    23        to vX.Y.Z (the current release)
    24  - Update version strings with the ``bumpver`` tool:
    25  
    26    .. code-block:: console
    27  
    28      $ ./contrib/bumpver/bumpver X.Y.Z \
    29          version/version.go \
    30          README.md \
    31          client/deis.py \
    32          client/setup.py \
    33          contrib/coreos/user-data.example \
    34          controller/deis/__init__.py \
    35          deisctl/deis-version \
    36          deisctl/deisctl.go \
    37          docs/contributing/test_plan.rst \
    38          docs/installing_deis/install-deisctl.rst \
    39          docs/installing_deis/install-platform.rst \
    40          docs/managing_deis/upgrading-deis.rst
    41  
    42  - Edit deisctl/cmd/cmd.go and change the default in the RefreshUnits usage string
    43    (near the bottom of the file) from ``[master]`` to ``[vX.Y.Z]``.
    44  - Examine the output of ``git grep vU.V.W`` to ensure that no old version strings
    45    were missed
    46  - Commit and push the deis/deis release and tag
    47      * ``git commit -a -m 'chore(release): update version to vX.Y.Z'``
    48      * ``git push origin release-X.Y.Z``
    49  - When the PR is approved and merged, tag it in master
    50      * ``git checkout master && git pull``
    51      * ``git tag vX.Y.Z``
    52      * ``git push --tags origin vX.Y.Z``
    53  - Trigger all deis-cli and deisctl builder jobs at ci.deis.io. When they finish, verify that
    54    the current binary installers are publicly downloadable from the opdemand S3 bucket.
    55  - Trigger the test-master job, supplying vX.Y.Z as the version
    56  - When test-master completes, double-check images at Docker Hub to verify tags are published
    57  - Publish CLI to pypi.python.org
    58      - ``cd client && python setup.py sdist upload``
    59      - use testpypi.python.org first to ensure there aren't any problems
    60  
    61  deis.io repo
    62  ------------
    63  - Update deis.io installer scripts to point to new versions by default
    64      * update https://github.com/deis/deis.io/blob/gh-pages/deis-cli/install.sh
    65      * update https://github.com/deis/deis.io/blob/gh-pages/deisctl/install.sh
    66  
    67  Documentation
    68  -------------
    69  - (CHANGELOG.md files were regenerated and committed above.)
    70  - Docs are automatically published to http://docs.deis.io (the preferred alias
    71    for deis.readthedocs.org)
    72  - Log in to the http://deis.readthedocs.org admin
    73      * add the current release to the list of published builds
    74      * remove the oldest release from the list of published builds
    75      * rebuild all published versions so their "Versions" index links
    76        are updated
    77  - Publish docs to pythonhosted.org/deis
    78      * from the project root, run ``make -C docs clean zipfile``
    79      * the zipfile will be at **docs/docs.zip**
    80      * log in to http://pypi.python.org/ and use the web form at the
    81        `Deis Pypi`_ page to upload the zipfile
    82  - Check documentation for deis/* projects at the `Docker Hub`_
    83      * click "Settings" for each project (deis/controller, deis/cache, etc.)
    84      * paste the contents of each README.md into the "long description" field if
    85        there are discrepencies
    86  - For a milestone release, create release notes docs
    87      * follow the format of previous `release notes`_
    88      * summarize all work done since the previous release
    89      * visit all deis/* project issues to make sure we don't
    90        miss any contributors for the "Community Shout-Outs" section
    91      * include "what's next" and "future directions" sections
    92      * add Markdown version of release notes to `deis/deis.io`_ website project
    93  - For a patch release, paste the new CHANGELOG.md section as GitHub release notes
    94  
    95  Post-Release
    96  ------------
    97  - Update the #deis IRC channel topic to reference the newly released version
    98  - For a milestone release, update HipChat channel topics to reference the
    99    next planned version
   100  - Create a branch for the post-release PR: ``git checkout -b release-X.Y.Z+git``
   101  - Update version strings to vX.Y.Z+git with the ``bumpver`` tool:
   102  
   103    .. code-block:: console
   104  
   105      $ ./contrib/bumpver/bumpver X.Y.Z+git \
   106          version/version.go \
   107          client/deis.py \
   108          deisctl/deis-version \
   109          deisctl/deisctl.go \
   110          controller/deis/__init__.py \
   111          README.md
   112  
   113  - Edit deisctl/cmd/cmd.go and change the default in the RefreshUnits usage string
   114    (near the bottom of the file) from ``[vX.Y.Z]`` to ``[master]``.
   115  - Create a pull request for vX.Y.Z+git
   116      * ``git commit -a -m 'chore(release): update version in master to vX.Y.Z+git'``
   117  - Ensure that this PR is merged before others are allowed to be merged!
   118  
   119  
   120  .. _`deis milestone`: https://github.com/deis/deis/issues/milestones
   121  .. _`deis open issues`: https://github.com/deis/deis/issues?state=open
   122  .. _`changelog script`: https://github.com/deis/deis/blob/master/contrib/util/generate-changelog.sh
   123  .. _`release notes`: https://github.com/deis/deis/releases
   124  .. _`aws-eng S3 bucket`: https://s3-us-west-2.amazonaws.com/opdemand/
   125  .. _`Deis Pypi`:  https://pypi.python.org/pypi/deis/
   126  .. _`Docker Hub`: https://hub.docker.com/
   127  .. _`deis/deis.io`: https://github.com/deis/deis.io