This section applies only to packages using SVN at svn.php.net.
Include the $Id$ SVN keyword in each file.
The rest of this section assumes that you have basic knowledge about SVN tags and branches.
SVN tags are used to label which revisions of the files in your package belong to a given release. Below is a list of the required and suggested SVN tags:
(required) Used for tagging a release. If you don't use it, there's no way to go back and retrieve your package from the SVN server in the state it was in at the time of the release.
(branch, optional) If you feel you need to roll out a release candidate before releasing, it's a good idea to make a branch for it so you can isolate the release and apply only those critical fixes before the actual release. Meanwhile, normal development may continue on the main trunk.
(branch, optional) If you need to make "micro-releases" (for example 1.2.1 and so on after 1.2.0), you can use a branch for that too, if your main trunk is very active and you want only minor changes between your micro-releases.
Only the RELEASE tag is required, the rest are recommended for your convenience.
Below is an example of how to tag the 1.2.0 release of the Money_Fast package:
$ SVN copy http://svn.php.net/repository/pear/packages/Money_Fast/trunk http://svn.php.net/repository/pear/packages/Money_Fast/tags/RELEASE_1_2_0
By doing this you make it possible for the PEAR web site to take you through the rest of your release process.
Here's an example of how to create a QA branch:
$ svn copy http://svn.php.net/repository/pear/packages/Money_Fast/trunk http://svn.php.net/repository/pear/packages/Money_Fast/branches/QA_2_0_0 ... $ svn copy http://svn.php.net/repository/pear/packages/Money_Fast/branches/QA_2_0_0 http://svn.php.net/repository/pear/packages/Money_Fast/tags/RELEASE_2_0_0RC1 ...and then the actual release, from the same branch: $ svn copy http://svn.php.net/repository/pear/packages/Money_Fast/branches/QA_2_0_0 http://svn.php.net/repository/pear/packages/Money_Fast/tags/RELEASE_2_0_0