|
4 | 4 |
|
5 | 5 | .. _releases: |
6 | 6 |
|
7 | | -Releases |
8 | | -======== |
9 | | - |
10 | | -When the maintainers create a new Deis release, here are the steps involved: |
11 | | - |
12 | | - |
13 | | -GitHub Issues |
14 | | -------------- |
15 | | - |
16 | | -- create next `milestone`_ |
17 | | -- roll unfinished issues (if there are any) into next milestone |
18 | | -- close current release milestone |
19 | | - |
20 | | - |
21 | | -Other Repos |
22 | | ------------ |
23 | | - |
24 | | -- TBD |
25 | | - |
26 | | - |
27 | | -Chef Repo |
28 | | ---------- |
29 | | - |
30 | | -- merge master into release branch locally |
31 | | - * ``git checkout release`` |
32 | | - * ``git merge master`` |
33 | | -- change chef attributes to latest tags in attributes/default.rb |
34 | | - * default.deis.gitosis.revision |
35 | | - * default.deis.controller.revision |
36 | | - * (default.deis.build.revision for slugbuilder stays at master) |
37 | | -- ``knife cookbook metadata .`` to update metadata.json |
38 | | -- commit and push the opdemand/deis-cookbook release and tag |
| 7 | +Release Checklist |
| 8 | +================= |
| 9 | + |
| 10 | +These instructions are to assist the Deis maintainers with creating a new Deis |
| 11 | +product release. |
| 12 | + |
| 13 | +.. image:: http://upload.wikimedia.org/wikipedia/commons/3/37/Grace_Hopper_and_UNIVAC.jpg |
| 14 | + :width: 220 |
| 15 | + :height: 193 |
| 16 | + :align: right |
| 17 | + :alt: Grace Hopper and UNIVAC, from the Wikimedia Commons |
| 18 | + |
| 19 | +Please keep this document up-to-date with any changes in this process. |
| 20 | + |
| 21 | +opdemand/deis-cookbook Chef Repo |
| 22 | +-------------------------------- |
| 23 | +- Create the next `deis-cookbook milestone`_ |
| 24 | +- Move any `deis-cookbook open issues`_ from the current release to the |
| 25 | + next milestone |
| 26 | +- Close the current `deis-cookbook milestone`_ |
| 27 | +- Merge git master into release branch locally |
| 28 | + * ``git checkout release && git merge master`` |
| 29 | +- Run ``knife cookbook metadata .`` to update **metadata.json**. **DOUBLE-CHECK |
| 30 | + the generated file after this step--this may be broken currently.** |
| 31 | +- Commit, push, and tag the opdemand/deis-cookbook release |
39 | 32 | * ``git commit -a -m 'Updated for vX.Y.Z release.'`` |
40 | 33 | * ``git push origin release`` |
41 | 34 | * ``git tag vX.Y.Z`` |
42 | 35 | * ``git push --tags origin vX.Y.Z`` |
43 | | -- update opscode community cookbook |
44 | | - * cd to parent dir of deis-cookbook |
| 36 | +- Update the deis Opscode Community cookbook |
| 37 | + * ``cd`` to the parent dir of the deis-cookbook repository |
45 | 38 | * ``cp -pr deis-cookbook /tmp/deis && cd /tmp`` |
46 | 39 | * ``tar cvfz deis-cookbook-vX.Y.Z.tar.gz --exclude='deis/.*' deis`` |
47 | | - * log in to community.opscode.com and upload tarball |
| 40 | + * log in to the `Opscode Community`_ site and upload the |
| 41 | + **/tmp/deis-cookbook-vX.Y.Z.tar.gz** tarball |
48 | 42 | - switch master to upcoming release |
49 | 43 | * ``git checkout master`` |
50 | | - * change cookbook revisions in metadata.rb to *next* version |
51 | | - * ``git commit -a -m 'Switch master to vA.B.C.'`` (next version) |
| 44 | + * change **version** string in metadata.rb to *next* version |
| 45 | + * ``git commit -a -m 'Switch master to vA.B.C.'`` (**next** version) |
52 | 46 | * ``git push origin master`` |
53 | 47 |
|
54 | | - |
55 | | -Deis Repo |
56 | | ---------- |
57 | | - |
58 | | -- merge master into release branch locally |
59 | | - * ``git checkout release`` |
60 | | - * ``git merge master`` |
61 | | -- update berksfile with new release |
62 | | - * ensure Berksfile is pointing to opscode community cookbook |
63 | | - * ``berks update && berks install`` to update Berksfile.lock |
64 | | -- commit and push the opdemand/deis release and tag |
| 48 | +opdemand/deis Server Repo |
| 49 | +------------------------- |
| 50 | +- Create the next `deis milestone`_ |
| 51 | +- Move any `deis open issues`_ from the current release to the |
| 52 | + next milestone |
| 53 | +- Close the current `deis milestone`_ |
| 54 | +- Merge git master into release branch locally |
| 55 | + * ``git checkout release && git merge master`` |
| 56 | +- Update Berksfile with new release |
| 57 | + * edit **Berksfile** and ensure it points to the Opscode Community cookbook |
| 58 | + for Deis |
| 59 | + * ``berks update && berks install`` to update **Berksfile.lock** |
| 60 | +- Commit and push the opdemand/deis release and tag |
65 | 61 | * ``git commit -a -m 'Updated for vX.Y.Z release.'`` |
66 | 62 | * ``git push origin release`` |
67 | 63 | * ``git tag vX.Y.Z`` |
68 | 64 | * ``git push --tags origin vX.Y.Z`` |
69 | | -- publish CLI to pypi.python.org |
| 65 | +- Publish CLI to pypi.python.org |
70 | 66 | - ``cd client && python setup.py sdist upload`` |
71 | 67 | - use testpypi.python.org first to ensure there aren't any problems |
72 | | -- create CLI binaries for Windows and Mac OS X |
| 68 | +- Create CLI binaries for Windows, Mac OS X, Debian |
73 | 69 | - ``pip install pyinstaller && make client_binary`` |
74 | | - - use Mac OS X 10.8 to avoid LLVM errors for others |
75 | | - - upload to aws-eng S3 bucket, set as publically downloadable |
76 | | -- switch master to upcoming release |
| 70 | + - build **deis-osx-X.Y.Z.tgz** on Mac OS X 10.8 for all Macs (10.9 uses |
| 71 | + LLVM, which makes our binary crash on earlier OS versions) |
| 72 | + - build **deis-win64-X.Y.Z.zip** on Windows 7 64-bit |
| 73 | + - build **deis-deb-wheezy-X.Y.Z.tgz** on Debian Wheezy |
| 74 | + (see https://github.com/opdemand/deis/issues/504) |
| 75 | + - upload all binaries to the `aws-eng S3 bucket`_ and set each as |
| 76 | + publically downloadable |
| 77 | +- Switch master to upcoming release |
77 | 78 | * ``git checkout master`` |
78 | 79 | * update __version__ fields in Python packages to *next* version |
79 | 80 | * switch from opscode community cookbook back to github cookbook |
80 | 81 | * ``berks update && berks install`` to update Berksfile.lock |
81 | | - * ``git commit -a -m 'Switch master to vA.B.C.'`` (next version) |
| 82 | + * ``git commit -a -m 'Switch master to vA.B.C.'`` (**next** version) |
82 | 83 | * ``git push origin master`` |
83 | 84 |
|
84 | | -Docs |
85 | | ----- |
86 | | -- create release notes docs |
87 | | - - follow format of previous `release notes`_ |
88 | | - - summarize all work done |
89 | | - - what's next and future directions |
90 | | -- publish docs to http://docs.deis.io (deis.readthedocs.org) |
91 | | -- visit readthedocs.org admin and add this release to published builds |
92 | | - - Rebuild *all* published versions so their "Versions" index is updated |
93 | | -- publish docs to pythonhosted.org/deis |
94 | | - - from the project root, run ``make -C docs clean zipfile`` |
95 | | - - zipfile will be at *docs/docs.zip* |
96 | | - - log in and use web form at https://pypi.python.org/pypi/deis/ |
97 | | - to upload zipfile |
98 | | - |
99 | | - |
100 | | -.. _`milestone`: https://github.com/opdemand/deis/issues/milestones |
| 85 | +Documentation |
| 86 | +------------- |
| 87 | +- Docs are automatically published to http://docs.deis.io (the preferred alias |
| 88 | + for deis.readthedocs.org) |
| 89 | +- Log in to the http://deis.readthedocs.org admin |
| 90 | + * add the current release to the list of published builds |
| 91 | + * rebuild all published versions so their "Versions" index links |
| 92 | + are updated |
| 93 | +- Publish docs to pythonhosted.org/deis |
| 94 | + * from the project root, run ``make -C docs clean zipfile`` |
| 95 | + * the zipfile will be at **docs/docs.zip** |
| 96 | + * log in to http://pypi.python.org/ and use the web form at the |
| 97 | + `Deis Pypi`_ page to upload the zipfile |
| 98 | +- Check documentation for deis/* projects at the `Docker Index`_ |
| 99 | + * click "Settings" for each project (deis/server, deis/cache, etc.) |
| 100 | + * paste the contents of each README.md into the "long description" field if |
| 101 | + there are discrepencies. (These don't automatically sync up after the |
| 102 | + Trusted Build is first created.) |
| 103 | +- Create release notes docs |
| 104 | + * follow the format of previous `release notes`_ |
| 105 | + * summarize all work done since the previous release |
| 106 | + * visit all opdemand/* and deis/* project issues to make sure we don't |
| 107 | + miss any contributors for the "Community Shout-Outs" section |
| 108 | + * include "what's next" and "future directions" sections |
| 109 | + |
| 110 | + |
| 111 | +.. _`deis-cookbook milestone`: https://github.com/opdemand/deis-cookbook/issues/milestones |
| 112 | +.. _`deis-cookbook open issues`: https://github.com/opdemand/deis-cookbook/issues?state=open |
| 113 | +.. _`Opscode Community`: http://community.opscode.com/cookbooks/deis/versions/new |
| 114 | +.. _`deis milestone`: https://github.com/opdemand/deis/issues/milestones |
| 115 | +.. _`deis open issues`: https://github.com/opdemand/deis/issues?state=open |
101 | 116 | .. _`release notes`: https://github.com/opdemand/deis/releases |
| 117 | +.. _`aws-eng S3 bucket`: https://s3-us-west-2.amazonaws.com/opdemand/ |
| 118 | +.. _`Deis Pypi`: https://pypi.python.org/pypi/deis/ |
| 119 | +.. _`Docker Index`: https://index.docker.io/ |
0 commit comments