Making releases
===============

 Pre-release (repeat as appropriate):
   A. Backport changes if appropriate.
   B. Update CHANGES.
   C. Run the testsuite, check everything is OK.
   D. Trial-run ./dist.sh, check the output is sane.
   E. Run "www/validate.sh www/*.html" to make sure that the
      documentation HTML is valid.

 Creating the release:
   1. If this is an A.B.0 release, make a branch:
        svn copy http://cvs2svn.tigris.org/svn/cvs2svn/trunk \
          http://cvs2svn.tigris.org/svn/cvs2svn/branches/A.B.x
      and then increment the -dev VERSION in cvs2hg_lib/version.py on
      trunk.
   2. Set the release number and date in CHANGES on trunk.
   3. Switch to a branch working copy.
   4. Merge CHANGES to the release branch.
   5. Make a trial distribution and see that the unit tests run:
        ./dist.sh
        tar -xzf cvs2svn-A.B.C-dev.tar.gz
        cd cvs2svn-A.B.C-dev
        ./run-tests.py
        cd ..
        rm -rf cvs2svn-A.B.C-dev
   6. Set VERSION in cvs2hg_lib/version.py and then run:
        svn copy . http://cvs2svn.tigris.org/svn/cvs2svn/tags/A.B.C
   7. Increment the -dev VERSION in cvs2hg_lib/version.py on the
      A.B.x branch.
   8. Switch to the tag.
   9. Run:
        ./dist.sh
  10. Create a detached signature for the tar file:
        gpg --detach-sign -a cvs2svn-A.B.C.tar.gz

 Publishing the release:
   1. Upload tarball and signature to website download area (log in,
      go to "Downloads", then "Releases" folder, then "Add new file").
   2. Move old releases into the 'Old' folder of the download area
      (click on the "Edit" link next to the files, then change
      Status -> "Archival" and Folder -> "Old").
   3. Create a project announcement on the website.  See example
      template below.
   4. Send an announcement to announce@cvs2svn.tigris.org.
      (users@cvs2svn.tigris.org is subscribed to announce, so there is
      no need to send to both lists.)  See example template below.
   5. Update the topic on #cvs2svn.

 Publishing the release to PyPI (http://pypi.python.org):
   1. Unpack the release tarball.
   2. Run
        python setup.py register
      Within PyPI, cvs2svn appears here: http://pypi.python.org/pypi/cvs2svn


Release announcement templates
==============================

Here are suggested release announcement templates.  Fill in the substitutions
as appropriate, and refer to previous announcements for examples.

Web:
[[[
cvs2svn VERSION is now released.
<br />
The MD5 checksum is CHECKSUM
<br />
For more information see <a
href="http://cvs2svn.tigris.org/source/browse/cvs2svn/tags/VERSION/CHANGES?view=markup"
>CHANGES</a>.
<br />
Download: <a
href="http://cvs2svn.tigris.org/files/documents/1462/NNNNN/cvs2svn-VERSION.tar.gz"
>cvs2svn-VERSION.tar.gz</a>.
]]]

Email:
[[[
Subject: cvs2svn VERSION released
To: announce@cvs2svn.tigris.org, git@vger.kernel.org
Reply-to: users@cvs2svn.tigris.org

cvs2svn VERSION is now released.

BRIEF_SUMMARY_OF_VERSION_HIGHLIGHTS

For more information see:
http://cvs2svn.tigris.org/source/browse/cvs2svn/tags/VERSION/CHANGES?view=markup

You can get it here:
http://cvs2svn.tigris.org/files/documents/1462/NNNNN/cvs2svn-VERSION.tar.gz

The MD5 checksum is CHECKSUM.

Please send any bug reports and comments to users@cvs2svn.tigris.org.

YOUR_NAME, on behalf of the cvs2svn development team.
]]]
