-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Release instructions
A. Jesse Jiryu Davis edited this page Oct 1, 2016
·
9 revisions
- Each release is identified by a tag of the form
vX.Y.Z(e.g.v4.4.0). All three numbers are included in the tag, although the trailing.0is generally omitted in other contexts. Beta releases have a suffix likeb1. - Release tags (non-beta) are annotated: create the tag with
git tag -a v4.4.0and paste in the release notes. - Branches named
branchX.Ytrack the latest release in each series. These branches are also used onreadthedocs.orgto host the documentation for that version. - The branch named
stabletracks the latest release (same as the most recentbranchX.Y) and is used as the default version in the docs (so that URLs are stable across versions)
- For a patch release, work on the appropriate
branchX.Yand cherry-pick as needed. - Release notes live in
docs/releases/vX.Y.Z.rst, and must be linked fromdocs/releases.rst. - Update version numbers in both
setup.pyandtornado/__init__.py. See the comments in__init__.pyabout theversion_infostruct. Sample commit - Tag the release:
git tag -a vX.Y.Zand paste the release notes into the editor window that pops up. - Build the release tarball:
python setup.py sdist(The tarball goes indist/tornado-X.Y.tar.gz) - Test the release tarball in an isolated environment:
virtualenv /tmp/test_env; /tmp/test_env/bin/pip install path/to/tornado-X.Y.tar.gz; /tmp/test_env/bin/python -m tornado.test - Push the tag to github:
git push origin vX.Y.Z. Also push all updated branches. - This triggers a Windows binary build on
appveyor.com. Download the resulting artifacts (click on the tag build, and for each of the 32- and 64-bit environments click on the artifacts tab and download the.whlfile). TODO: automate this. Also consider building the source tarball and mac binaries on travis-ci. - Upload the releases:
twine upload dist/tornado-X.Y.Z.tar.gz; twine upload downloads/tornado-X.Y.Z-*.whl - If this release creates a new
branchX.Y, go toreadthedocs.organd enable builds for that branch. - Update the version number on the master branch. In between releases the version number has a
.dev1suffix (or occasionally.dev2, etc, if we want to mark particular milestones in the in-development version): release4.4.0is followed by version4.5.0.dev1. - On pypi, mark all but the latest release as "hidden". This is not automated so that beta releases don't hide the latest non-beta release.
- Announce on python-tornado and python-tornado-announce mailing lists.