-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Release instructions
Ben Darnell edited this page Jul 23, 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.0
is 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.0
and paste in the release notes. - Branches named
branchX.Y
track the latest release in each series. These branches are also used onreadthedocs.org
to host the documentation for that version. - The branch named
stable
tracks 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.Y
and 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.py
andtornado/__init__.py
. See the comments in__init__.py
about theversion_info
struct. Sample commit - Tag the release:
git tag -a vX.Y.Z
and 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 tag 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.whl
file). TODO: automate this. Also consider building the source tarball and mac binaries on travis-ci. - Upload the releases:
twine upload dist/tornado-X.Y.tar.gz; twine upload downloads/tornado-X.Y.*.whl
- If this release creates a new
branchX.Y
, go toreadthedocs.org
and enable builds for that branch. - Announce on
python-tornado
andpython-tornado-announce
mailing lists. - Update the version number on the master branch. In between releases the version number has a
.dev1
suffix (or occasionally.dev2
, etc, if we want to mark particular milestones in the in-development version): release4.4.0
is followed by version4.5.0.dev1
.