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