								-*-text-*-

                      ===========================
                       Hacker's Guide To cvs2svn
                      ===========================

This project uses the same social and technical guidelines (where
applicable) as Subversion itself.  You can view them online at
http://svn.collab.net/repos/svn/trunk/www/hacking.html.

Also:

   - Read design-notes.txt, you won't regret it.
   - Read the class documentation in cvs2svn.
   - Please put a new test in run-tests.py when you fix a bug.
   - Use 2 spaces between sentences in comments and docstrings.
     (This helps sentence-motion commands in some editors.)

Happy hacking!


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.

 Notes for specific releases:

 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 cvs2svn 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.tar.gz
        cd cvs2svn-A.B.C
        ./run-tests.py
        cd ..
        rm -rf cvs2svn-A.B.C
   6. Set VERSION in cvs2svn and then run:
        svn copy . http://cvs2svn.tigris.org/svn/cvs2svn/tags/A.B.C
   7. Increment the -dev VERSION in cvs2svn 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.
   2. Move old releases into the 'Old' folder of the download area.
   3. Create a project announcement on the website.
   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.)
   5. Update the topic on #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
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.
]]]
