<?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Releasing Twisted</title> </head> <body> <h1>Releasing Twisted</h1> <h2>Pre-release</h2> <h3>Test</h3> <ul> <li> <p>run the unit tests.</p> <pre class="shell">./admin/runtests</pre> </li> <li>Get someone to run the tests on Windows for win32eventreactor and default reactor.</li> <li><p>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:</p> <pre class="shell">WEBBROWSER='galeon -n' IRCCLIENT=epic4 ~/Projects/Twisted/admin/accepttests -b</pre> </li> <li>kill your regular personal server on pyramid, if you have one.</li> <li><p> run the pre-release tests, on pyramid. When `less' comes up, <em>check for errors</em>.</p> <pre class="shell">./admin/prereleasetests</pre> </li> <li>Restart your personal server. :-)</li> </ul> <h3>Documentation</h3> <ul> <li>ChangeLog. <ul> <li>Browse through twisted-commits; if you see any updates that are significant but weren't mentioned in ChangeLog, retroactively add them</li> <li>Add an entry: * .: Releasing Twisted $VERSION</li> </ul> </li> <li>README: For a new non-alpha/RC, add a new Quote of the Release.</li> </ul> <h2>Release</h2> <h3>Ensure Debian correctness for alpha1</h3> <p>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.</p> <h3>Update from previous RC for rcN > 1</h3> <p>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:</p> <pre class="shell"> 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 .. </pre> <p> 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. </p> <h3>Run release-twisted</h3> <ul> <li> <p> If you are working from a CVS version of Twisted which you want to release, make sure it is named <code class="shell">Twisted.CVS</code>, and in the directory immediately above it there is nothing else (that can be done via symlinks), and run: </p> <pre class="shell"> ./Twisted.CVS/admin/release-twisted -V $VERSION -o $LASTVERSION \ --release=/twisted/Releases --upver --tag --exp --dist --docs \ --balls --rel --deb --debi </pre> </li> <li> <p> 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 </p> <pre class="shell"> $SOMEWHERE/admin/release-twisted -V $VERSION -o $LASTVERSION --checkout \ --release=/twisted/Releases --upver --tag --exp --dist --docs --balls \ --rel --deb --debi </pre> </li> </ul> <h3>win32</h3> <p>Run win32/bdist_wininst.bat.</p> <h2>Post-release</h2> <h3>Upgrade pyramid</h3> <ul> <li> <p>Restart the main Twisted web server:</p> <pre class="shell">sudo /etc/init.d/twisted-web stop sudo /etc/init.d/twisted-web start </pre> </li> <li> <p>If necessary (only when distributed web changes protocols; this is very rare any more), restart snibril's server.</p> <pre class="shell">su jh; ~jh/bin/stop; ~jh/bin/start; exit</pre> </li> </ul> <h3>Distribute</h3> <p>Upload to Sourceforge</p> <pre class="shell"> $SOMEWHERE/admin/release-twisted -n $SFNAME -V $VERSION --sourceforge \ --release=/twisted/Releases </pre> <h3>Update Website</h3> <ul> <li>If everything's cool, edit WebSite/twistedmatrix.com/news.html, index, documents/index.html, products/get-current.epy and products/download.html</li> <li>cvs commit those</li> <li><p>deploy changes:</p> <pre class="shell">cd /var/www/WebSite/twistedmatrix.com ./generate.sh </pre> </li> </ul> <h3>Announcements</h3> <p>This is usually done by Itamar.</p> <ul> <li>Freshmeat</li> <li>comp.lang.python</li> <li>comp.lang.python.announce</li> <li>parnassus</li> <li>Linux Weekly News (email lwn at lwn.net)</li> <li>PyPI</li> </ul> <h3>Notify Packagers</h3> <p>All releases (alpha, RC, stable)</p> <ul> <li>Win32: Cory Dodt <a href="mailto:corydodt (at) twistedmatrix (dot) com">corydodt (at) twistedmatrix (dot) com</a></li> <li>FreeBSD (while Johann is busy): <a href="mailto:nbm (at) mithrandr (dot) moria (dot) org">nbm (at) mithrandr (dot) moria (dot) org</a></li> <li>Gentoo: <a href="mailto:lordvan (at) gentoo (dot) org">lordvan (at) gentoo (dot) org</a></li> <li>RH9: <a href="mailto:alexander (dot) winston (at) comcast (dot) net">alexander (dot) winston (at) comcast (dot) net</a></li> </ul> <p>Stable</p> <ul> <li>Debian: Moshe Zadka <a href="mailto:moshez (at) twistedmatrix (dot) com">moshez (at) twistedmatrix (dot) com</a></li> <li>SKIP (johann is busy): FreeBSD: Johann Visagie <a href="mailto:wjv (at) freebsd (dot) org">wjv (at) freebsd (dot) org</a></li> </ul> </body> </html>