-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Release instructions
Ben Darnell edited this page Mar 23, 2019
·
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
tornado/__init__.py. See the comments in__init__.pyabout theversion_infostruct. - 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. Watch the build here, and when it's done runPYTHONPATH=. maint/scripts/download_wheels.py vX.Y.Z. TODO: 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-vX.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. - Announce on python-tornado and python-tornado-announce mailing lists.