How to Make a Tahoe-LAFS Release Any developer with push priveleges can do most of these steps, but a "Release Maintainer" is required for some signing operations -- these steps are marked with (Release Maintainer). Currently, the following people are Release Maintainers: - Brian Warner (https://github.com/warner) * select features/PRs for new release [0/2] - [ ] made sure they are tagged/labeled - [ ] merged all release PRs * basic quality checks [0/3] - [ ] all travis CI checks pass - [ ] all appveyor checks pass - [ ] all buildbot workers pass their checks * freeze master branch [0/1] - [ ] announced the freeze of the master branch on IRC (i.e. non-release PRs won't be merged until after release) * sync documentation [0/7] - [ ] NEWS.rst: (run "tox -e news") - [ ] added final release name and date to top-most item in NEWS.rst - [ ] updated relnotes.txt (change next, last versions; summarize NEWS) - [ ] updated CREDITS - [ ] updated docs/known_issues.rst - [ ] docs/INSTALL.rst only points to current tahoe-lafs-X.Y.Z.tar.gz source code file - [ ] updated https://tahoe-lafs.org/hacktahoelafs/ * sign + build the tag [0/8] - [ ] code passes all checks / tests (i.e. all CI is green) - [ ] documentation is ready (see above) - [ ] (Release Maintainer): git tag -s -u 0xE34E62D06D0E69CFCA4179FFBDE0D31D68666A7A -m "release Tahoe-LAFS-X.Y.Z" tahoe-lafs-X.Y.Z - [ ] build code locally: tox -e py27,codechecks,deprecations,docs,integration,upcoming-deprecations - [ ] created tarballs (they'll be in dist/ for later comparison) tox -e tarballs - [ ] release version is reporting itself as intended version ls dist/ - [ ] 'git pull' doesn't pull anything - [ ] pushed tag to trigger buildslaves git push official master TAGNAME - [ ] confirmed Dockerhub built successfully: https://hub.docker.com/r/tahoelafs/base/builds/ * sign the release artifacts [0/8] - [ ] (Release Maintainer): pushed signed tag (should trigger Buildbot builders) - [ ] Buildbot workers built all artifacts successfully - [ ] downloaded upstream tarballs+wheels - [ ] announce on IRC that master is unlocked - [ ] compared upstream tarballs+wheels against local copies - [ ] (Release Maintainer): signed each upstream artifacts with "gpg -ba -u 0xE34E62D06D0E69CFCA4179FFBDE0D31D68666A7A FILE" - [ ] added to relnotes.txt: [0/3] - [ ] prefix with SHA256 of tarballs - [ ] release pubkey - [ ] git revision hash - [ ] GPG-signed the release email with release key (write to relnotes.txt.asc) Ideally this is a Release Maintainer, but could be any developer * publish release artifacts [0/9] - [ ] uploaded to PyPI via: twine upload dist/* - [ ] uploaded *.asc to org ~source/downloads/ - [ ] test install works properly: pip install tahoe-lafs - [ ] copied the release tarballs and signatures to tahoe-lafs.org: ~source/downloads/ - [ ] moved old release out of ~source/downloads (to downloads/old/?) - [ ] ensured readthedocs.org updated - [ ] uploaded wheels to https://tahoe-lafs.org/deps/ - [ ] uploaded release to https://github.com/tahoe-lafs/tahoe-lafs/releases * check release downloads [0/] - [ ] test PyPI via: pip install tahoe-lafs - [ ] https://github.com/tahoe-lafs/tahoe-lafs/releases - [ ] https://tahoe-lafs.org/downloads/ - [ ] https://tahoe-lafs.org/deps/ * document release in trac [0/] - [ ] closed the Milestone on the trac Roadmap * unfreeze master branch [0/] - [ ] announced on IRC that new PRs will be looked at/merged * announce new release [0/] - [ ] sent release email and relnotes.txt.asc to tahoe-announce@tahoe-lafs.org - [ ] sent release email and relnotes.txt.asc to tahoe-dev@tahoe-lafs.org - [ ] updated Wiki front page: version on download link, News column - [ ] updated Wiki "Doc": parade of release notes (with rev of NEWS.rst) - [ ] make an "announcement of new release" on freshmeat (XXX still a thing?) - [ ] make an "announcement of new release" on launchpad - [ ] tweeted as @tahoelafs - [ ] emailed relnotes.txt.asc to below listed mailing-lists/organizations - [ ] also announce release to (trimmed from previous version of this doc): - twisted-python@twistedmatrix.com - liberationtech@lists.stanford.edu - lwn@lwn.net - p2p-hackers@lists.zooko.com - python-list@python.org - http://listcultures.org/pipermail/p2presearch_listcultures.org/ - cryptopp-users@googlegroups.com - (others?)