Skip to content

Release instructions

bdarnell edited this page Jun 1, 2012 · 8 revisions
  1. Start from a clean slate: remove any _auto2to3* files and the build directory (consider doing git clean -fdx or working from a fresh clone)
  2. For a patch release, checkout the previous release (git checkout v1.1.0), and then make changes (using git cherry-pick or rebase as needed). For a full release, git checkout master.
  3. Update version numbers in code (setup.py, __init__.py). Sample commit
  4. Tag the release: git tag -a v1.1.1 Paste release notes into the editor window that pops up.
  5. Build the release tarball: python2.7 setup.py sdist (the tarball goes in dist/tornado-1.1.1.tar.gz) (TODO: figure out why python2.6 doesn’t include certificate files in tarball, but python2.7 doesn’t generate egg-info)
  6. Test the release tarball in an isolated environment: pip -E /tmp/test_env install dist/tornado-1.1.1.tar.gz; /tmp/test_env/bin/python -m tornado.test.runtests. Don’t run this from the tornado source directory.
  7. Upload the tarball to github’s downloads page (we don’t use github’s tag-generated tarballs directly because they have funny names)
  8. For a patch relase, merge the newly-created tag into master: git checkout master; git merge v1.1.1
  9. Push the code and tag to github: git push origin master; git push origin tag v1.1.1
  10. Update the website in appengine (make -C website clean sphinx; dev_appserver.py website, test localhost:8080, appcfg.py update website)
  11. Update PyPI: Go to here, click edit, upload tornado.egg-info/PKG-INFO (created by setup.py sdist). Ask Ben for access. TODO: figure out why python2.7 setup.py doesn’t generate egg info. Upload the source tarball here too.
  12. Update branches (TODO: document branch policy)
  13. Announce via google group
  14. Go to readthedocs.org and update the default version