Version 10 (modified by Jonathan Lange, 8 years ago) (diff)


This document is a draft

How to do a pre-release

  1. File a ticket (e.g. #4290)
  2. Check buildbot to make sure all supported platforms are green (wait for pending builds if necessary).
  3. Make a branch (e.g. mkbranch Twisted release-4290)
  4. Run ./bin/admin/change-versions XX.YY.ZZpreN
  5. Commit the changes made by change-versions
  6. Run ./bin/admin/build-news .
  7. Commit the changes made by build-news
  8. Make a temporary directory for the tarballs to live in (e.g. mkdir /tmp/twisted-release)
  9. Run ./bin/admin/build-tarballs . /tmp/twisted-release/
  10. Upload the tarballs to a public website
  11. Announce the pre-release on
    1. the twisted-python mailing list
    2. on IRC in the #twisted topic
    3. in a blog post, ideally

Open questions

  • How do I decide the version number?
  • Do we need to commit the changes from build-news for pre-releases?
    • They leave the pre-release version in the NEWS files when doing pre-releases
    • But build-tarballs won't work with uncommitted changes
  • How do we manage the case where there are untested builds in trunk?
  • How/when in this process are the Windows installers and/or MacOS .dmg files created?
    • (I presume .deb and .rpm packages are left up to Linux distro packagers)
  • How/when in this process are the docs built?
  • When should the front page of the wiki be updated?


  • Test change-versions with pre-releases
  • There should be a template for release announcements
    • Pre-release announcements should include an exhortation to test
    • Release announcements should include actual NEWS summaries and maybe a pointer to the full thing
  • There are missing scripts:
    • for uploading pre-release tarballs
    • for signing tarballs
    • for uploading release tarballs

Suggestions for additions to pre-release steps

  • pick a release quote :)
  • bump copyrights in LICENSE and README
  • Delete the news NNNN.bugfix etc files after building NEWS
  • Check the milestone for the upcoming release, get rid of any non-critical bugs
  • Check for any open tickets marked regressions, get them fixed