Pre-release
Test
run the unit tests.
./admin/runtests
- Get someone to run the tests on Windows for win32eventreactor and default reactor.
run the accepttests. It's important that you run the accepttests with a non-relative command line (stupid bug that still isn't fixed. Too easy to work around :)). I use:
WEBBROWSER='galeon -n' IRCCLIENT=epic4 ~/Projects/Twisted/admin/accepttests -b
- kill your regular personal server on pyramid, if you have one.
run the pre-release tests, on pyramid. When `less' comes up, check for errors.
./admin/prereleasetests
- Restart your personal server. :-)
Documentation
- ChangeLog.
- Browse through twisted-commits; if you see any updates that are significant but weren't mentioned in ChangeLog, retroactively add them
- Add an entry: * .: Releasing Twisted $VERSION
- README: For a new non-alpha/RC, add a new Quote of the Release.
Release
Ensure Debian correctness for alpha1
If you're doing an alpha1, make sure debian/changelog has been updated to show the prior full-release. e.g., if doing 1.1.2alpha1, make sure 1.1.1 is in debian/changelog, or else your new .deb will have a broken Version.
Update from previous RC for rcN > 1
If you're doing an rcN > 1, then you need to base the release on the previous RC. You do that with something like this:
cvs -dradix@cvs.twistedmatrix.com:/cvs co -r release-X_X_XrcN Twisted mv Twisted Twisted.CVS cd Twisted.CVS # the following files should be updated on _every_ RC cvs up -A README ChangeLog admin/twisted.spec twisted/copyright.py # run cvs up -A for all other files which contained bugs and should be # updated for this RC cvs up -A $OTHER_FILES_WHICH_SHOULD_BE_UPDATED cd ..
After doing this, use the first command below. If you're doing a release from HEAD (i.e., an alpha or rc1), use the second command.
Run release-twisted
If you are working from a CVS version of Twisted which you want to release, make sure it is named
Twisted.CVS
, and in the directory immediately above it there is nothing else (that can be done via symlinks), and run:./Twisted.CVS/admin/release-twisted -V $VERSION -o $LASTVERSION \ --release=/twisted/Releases --upver --tag --exp --dist --docs \ --balls --rel --deb --debi
If you want to release the latest CVS version of Twisted, have a reasonably recent checkout of Twisted in $SOMEWHERE, and in an empty directory do
$SOMEWHERE/admin/release-twisted -V $VERSION -o $LASTVERSION --checkout \ --release=/twisted/Releases --upver --tag --exp --dist --docs --balls \ --rel --deb --debi
win32
Run win32/bdist_wininst.bat.
Post-release
Upgrade pyramid
Restart the main Twisted web server:
sudo /etc/init.d/twisted-web stop sudo /etc/init.d/twisted-web start
If necessary (only when distributed web changes protocols; this is very rare any more), restart snibril's server.
su jh; ~jh/bin/stop; ~jh/bin/start; exit
Distribute
Upload to Sourceforge
$SOMEWHERE/admin/release-twisted -n $SFNAME -V $VERSION --sourceforge \ --release=/twisted/Releases
Update Website
- If everything's cool, edit WebSite/twistedmatrix.com/news.html, index, documents/index.html, products/get-current.epy and products/download.html
- cvs commit those
deploy changes:
cd /var/www/WebSite/twistedmatrix.com ./generate.sh
Announcements
This is usually done by Itamar.
- Freshmeat
- comp.lang.python
- comp.lang.python.announce
- parnassus
- Linux Weekly News (email lwn at lwn.net)
- PyPI
Notify Packagers
All releases (alpha, RC, stable)
- Win32: Cory Dodt corydodt (at) twistedmatrix (dot) com
- FreeBSD (while Johann is busy): nbm (at) mithrandr (dot) moria (dot) org
- Gentoo: lordvan (at) gentoo (dot) org
- RH9: alexander (dot) winston (at) comcast (dot) net
Stable
- Debian: Moshe Zadka moshez (at) twistedmatrix (dot) com
- SKIP (johann is busy): FreeBSD: Johann Visagie wjv (at) freebsd (dot) org