Preparations before cutting

Basically you need to test and build the distribution, and then build and commit the generated documentation. You will need following prerequisites to proceed:

	maven-1.0.*
	java-1.4 or java-1.5 sdk
	mysql-4.0 or newer
	

Building a Distribution

Make sure your working copy has no local modifications and is up-to-date. Starting with a fresh copy is recommended using:

      svn co http://scarab.tigris.org/svn/scarab/trunk scarab
	  

Build and execute tests.

      maven
      maven scarab:create-db
      maven test
      

If you find any failures or errors, fix them and commit the changes. Then build and run the tests again.

Edit scarab/xdocs/scarab_properties.xml and change the property with name "version" removing the "-dev" appendix from the final version number for the release.

Do the same in the <currentVersion> tag in project.xml file.

Run the property file generator and update the www/repository:

      maven scarab:update-repo
      maven scarab:update-properties
      

Update the scarab/www/index.html file to announce the new release.

Update the scarab/xdocs/changes.xml document to set the release date for the version. Create a new "in-dev" section for the next release.

Commit your changes and run 'svn update' to make sure noboddy has committed other changes meanwhile. If you get any new change into your working copy, rebuild and run the tests again.

Identify the repository version of the release using 'svnversion':

      $ svnversion .
      9750
	  
If you find that your working copy is mixed or modified (read svnversion help), update it, or even make a new fresh checkout, so you make sure you're not releasing anything untested or out of revision control.

If you get a single number (no letters!), this will be the revision of the new release tag.

Tag svn with the release tag, using the revision number you've just got, and the release number of the version you're releasing (B20 in the following sample).

      svn copy -r9750 http://PROJECT.tigris.org/svn/scarab/branches/release/b21 http://PROJECT.tigris.org/svn/scarab/tags/SCARAB_0_21
	  

Release

Build a source release. This will create a .tar.gz and a .zip file in the scarab directory.

      cd scarab/build
      ant package
      

Build the All In One Scarab release. This will create a Windows executable file that people can run in /target/ directory.

      maven scarab:sample
      

Restore the 'in development' status for trunk

Now that the release is done, you should restore trunk to the 'in development' status, with the information of the next release.

Edit scarab/xdocs/scarab_properties.xml and change the property with name "version" to the next version with the "-dev" appendix from the final version number for the release.

Do the same in the <currentVersion> tag of project.xml file.

Update the property files again.

      maven scarab:update-properties
    

Commit the changes back into trunk.

Distribution and announcement

Log into the Scarab website with your account. Go to the Downloads area (http://scarab.tigris.org/servlets/ProjectDocumentList) and move the existing released files into the "Old releases" folder.

Upload the new source and all in one releases into the "Top" folder.

Since Scarab's home page is automatically checked out from CVS (and not from Subversion), you'll have to update the www/index.html file into CVS too, so the home page gets updated.

Announce to the announce@scarab.tigris.org, users@scarab.tigris.org, dev@scarab.tigris.org lists that there is a new release available:

    Subject: [ANNOUNCEMENT] Scarab 1.0 beta 17 released

    The Scarab team is pleased to announce the release of version 1.0
    beta 17 of the Scarab issue tracking system.

    This is primarily bug fix release.

        http://scarab.tigris.org/
    

Post a new release on the freshmeat.net Scarab entry.