release.xhtml   [plain text]


<?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 &gt; 1</h3>

<p>If you're doing an rcN &gt; 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>