wiki:ReleaseProcedure

Version 15 (modified by exarkun, 6 years ago) (diff)

--

This page is super out-of-date and completely wrong

RELEASING TWISTED CORE OR A SUBPROJECT

  1. Fix all release-critical bugs in http://twistedmatrix.com/bugs/
  2. Verify that the supported platforms on buildbot ( http://buildbot.twistedmatrix.com/supported ) are ALL GREEN.
  3. Create a ticket for releasing your project at http://twistedmatrix.com/bugs/.
  4. mkbranch Twisted releases/twisted-<projname>-<a.b>.x-<ticketnumber> # The last 'x' in the version number is literal.
  5. Write release notes in proj/topfiles/NEWS, including a date and a version number.
  6. Run ./admin/change-versions. Specify the versions of whatever you're releasing. Core should be versioned as release.major.minor, where minors are only bugfixes, majors are functionality increases, and releases are major milestones.
  7. Add a Quote of the Release to twisted/topfiles/README if you are releasing Twisted Core.
  8. Run the release script: ./admin/release-twisted --commands=exportTemp,makeDocProj,makeBallProj
  9. Test the produced tarballs. Install them, run tests, etc.
  10. svn commit
  11. Tag the release. svn cp -m 'Tagging for Twisted <proj> <a.b.c> release' $TREPO/branches/releases/twisted-<proj>-<a.b>.x-<ticketnumber> $TREPO/tags/releases/twisted-<proj>-<a.b.c>
  12. Merge the branch to trunk.
  13. Distribute, announce, and so forth.

RELEASING TWISTED SUMO

  1. From Twisted trunk WC, mkdir twistedballs.
  2. Put all current subproject tarballs into twistedballs. Just copy unchanged projects from the previous Twisted tarball.
  3. Put ZopeInterface-*.tgz in twistedballs.
  4. ./admin/change-versions --sumo-only, and make sure all the versions are appropriately specified for the tarballs you've included. Eventually it shouldn't be necessary to change any version but the Twisted one.
  5. ./admin/release-twisted --commands=makeBallSumo --sumo-version=a.b.x.y' where 'a.b.x' is the version of Twisted Core contained in this release (see point 6 in "Releasing Core or a Subproject" above), and 'y' is simply a monotonically increasing nonnegative integer as long as 'a.b.x' is the same as the last release.
  6. Commit the changed README file to trunk, author: release-twisted, reviewer: you.
  7. Distribute, announce, etc.

CREATING A NEW SUBPROJECT

  1. Add the project name to twisted/python/dist.py's list of subprojects and setup.py's list of subprojects.
  2. mkdir twisted/<proj>/topfiles
  3. Create a setup.py, copying/modifying from e.g. twisted/conch/topfiles/setup.py.
  4. If your project has extension modules, see twisted/runner/topfiles/setup.py as an example.

OK SOME OTHER STUFF

  1. Put the release tarball in the appropriate subdirectory of /twisted/Releases/
  2. Edit the wiki page for the released project
    1. Add a new section for current stable release
      1. Put new version number in visible text
      2. Point the download link at the new download URL on tmrc
    2. Delete any existing old stable release
    3. Relabel the old stable release as the old stable release
    4. Point the release notes at the trac browser URL for NEWS file in the release tag (if the release is Twisted, point to all of the NEWS files for all included subprojects)
  3. Update the documentation
    1. Update website documentation
    2. Generate new book.pdf with admin/process-docs and put it in the branch in the right place. Do not be afraid of the output of process-docs.
    3. Read vhosts/twistedmatrix.com/projects/place.py and pray.
  4. Update the wiki front page with new version number and download links
  5. Send out release announcement
    1. twisted-python@…
    2. python-announce@…
    3. freshmeat
    4. Update front page of twistedmatrix.com.
  6. Update ReleaseRevisions with information for the new release