| title: | Releases |
|---|---|
| description: | Details the Deis release process. Deis releases. |
| keywords: | deis, release, process, build, tag |
These instructions are to assist the Deis maintainers with creating a new Deis product release.
Please keep this document up-to-date with any changes in this process.
- Create the next deis-cookbook milestone
- Move any deis-cookbook open issues from the current release to the next milestone
- Close the current deis-cookbook milestone
- Merge git master into release branch locally
git checkout release && git merge master
- Run
knife cookbook metadata .to update metadata.json. DOUBLE-CHECK the generated file after this step--this may be broken currently. - Commit, push, and tag the opdemand/deis-cookbook release
git commit -a -m 'Updated for vX.Y.Z release.'git push origin releasegit tag vX.Y.Zgit push --tags origin vX.Y.Z
- Update the deis Opscode Community cookbook
cdto the parent dir of the deis-cookbook repositorycp -pr deis-cookbook /tmp/deis && cd /tmptar cvfz deis-cookbook-vX.Y.Z.tar.gz --exclude='deis/.*' deis- log in to the Opscode Community site and upload the /tmp/deis-cookbook-vX.Y.Z.tar.gz tarball
- switch master to upcoming release
git checkout master- change version string in metadata.rb to next version
git commit -a -m 'Switch master to vA.B.C.'(next version)git push origin master
- Create the next deis milestone
- Move any deis open issues from the current release to the next milestone
- Close the current deis milestone
- Merge git master into release branch locally
git checkout release && git merge master
- Update Berksfile with new release
- edit Berksfile and ensure it points to the Opscode Community cookbook for Deis
berks update && berks installto update Berksfile.lock
- Commit and push the opdemand/deis release and tag
git commit -a -m 'Updated for vX.Y.Z release.'git push origin releasegit tag vX.Y.Zgit push --tags origin vX.Y.Z
- Publish CLI to pypi.python.org
cd client && python setup.py sdist upload- use testpypi.python.org first to ensure there aren't any problems
- Create CLI binaries for Windows, Mac OS X, Debian
pip install pyinstaller && make -C controller client- build deis-osx-X.Y.Z.tgz on Mac OS X 10.8 for all Macs (10.9 uses LLVM, which makes our binary crash on earlier OS versions)
- build deis-win64-X.Y.Z.zip on Windows 7 64-bit
- build deis-deb-wheezy-X.Y.Z.tgz on Debian Wheezy (see deis/deis#504)
- upload all binaries to the aws-eng S3 bucket and set each as publically downloadable
- Switch master to upcoming release
git checkout master- update __version__ fields in Python packages to next version
- switch from opscode community cookbook back to github cookbook
berks update && berks installto update Berksfile.lockgit commit -a -m 'Switch master to vA.B.C.'(next version)git push origin master
- Docs are automatically published to http://docs.deis.io (the preferred alias for deis.readthedocs.org)
- Log in to the http://deis.readthedocs.org admin
- add the current release to the list of published builds
- rebuild all published versions so their "Versions" index links are updated
- Publish docs to pythonhosted.org/deis
- from the project root, run
make -C docs clean zipfile - the zipfile will be at docs/docs.zip
- log in to http://pypi.python.org/ and use the web form at the Deis Pypi page to upload the zipfile
- from the project root, run
- Check documentation for deis/* projects at the Docker Index
- click "Settings" for each project (deis/controller, deis/cache, etc.)
- paste the contents of each README.md into the "long description" field if there are discrepencies. (These don't automatically sync up after the Trusted Build is first created.)
- Create release notes docs
- follow the format of previous release notes
- summarize all work done since the previous release
- visit all opdemand/* and deis/* project issues to make sure we don't miss any contributors for the "Community Shout-Outs" section
- include "what's next" and "future directions" sections
