// $Id: RELEASE_INSTRUCTIONS,v 1.23 2010/02/12 09:13:21 belaban Exp $

	       Things to do before packaging a release
	       ---------------------------------------

Pre-release:
- Do a cvs update -dP and commit all pending changes
- Run all unit tests: ./build clean all-tests reports
- Run the manual tests in doc/tests/ManualTests.txt
- Run the performance tests to see whether performance is about the same
  (see wiki http://wiki.jboss.org/wiki/Wiki.jsp?page=PerfTests)


Release:
- Update the ReleaseNotes-xxx.txt for the given release
- Set version in: Version.java, manifest.mf, build.xml and pom.xml
  * Note that the version needs to conform to the version standards, e.g. 2.6.2.GA or 2.6.4.CR2, 2.5.4.Beta1
- Create a CVS tag: JGroups_x_y_z
- Add tag information to wiki: http://wiki.jboss.org/wiki/Wiki.jsp?page=Branches
- Create a distribution: ./build.sh dist
  - the distribution files are dist/JGroups-x.y.z-rel.bin.zip, dist/JGroups-x.y.z-rel.src.zip
- Upload distribution files to web site:
  - Go to http://sourceforge.net/projects/javagroups/
  - Log in and pick http://sourceforge.net/project/admin/editpackages.php?group_id=6081
  - Add release to JGroups (new version)
  - Release notes are included in dist, change log obtained from JIRA
- Create PDF and HTML documentation: ./build.sh docs and upload to web site
  - these files update the JGroups web page (http://www.jgroups.org/javagroupsnew/docs/index.html),
  specifically the links to manual and tutorial documentation  
  - see JGroups/bin/upload_manual.sh
- Create javadoc: ./build.sh javadoc and upload to web site
  - use process similar to pdf and html (script is bin/upload_javadocs.sh)
- Add new release binary jar *and* source jar to maven2 repository (http://repository.jboss.org/maven2)
  a. Check out the jgroups directory of the maven repository into a working directory $JG_REPO
     > svn co https://svn.jboss.org/repos/repository.jboss.org/maven2/jgroups/jgroups $JG_REPO
  b. Update the working copy with the new release binary jar file
     > mvn deploy:deploy-file -Dfile=$JG_RELEASE/dist/jgroups-all.jar -Durl=file://$JG_REPO -DpomFile=$JG_RELEASE/pom.xml
     This command will do the following:
     - use the pom you passed to determine groupId/artifactId/version 
     - create a directory in the svn working copy you checked out with the groupId/artifactID/version number
     - copy the jar into the directory and name it by version number
     - copy the pom passed into the directory
     - create checksums for the jar and the pom
     - update the maven meta-data files in the parent directory 
  c. Update the working copy with the new release sources jar file
     > mvn deploy:deploy-file -Dfile=$JG_RELEASE/dist/jgroups-sources.jar -Durl=file://$JG_REPO \
                              -DpomFile=$JG_RELEASE/pom.xml -Dclassifier=sources
     Performs the same actions as in step b., except that the classifier parameter causes the file to retain 
     the sources suffix in the repository. 
  d. Add the new directories and files to version control and commit the changes to the maven2 repo.
  (see wiki http://wiki.jboss.org/wiki/Wiki.jsp?page=MavenReleaseRepository)
- Announcement to the jg-dev and jg-users mailing lists
  -include release notes and changelog


  NOTE: to perform these steps, you will need a SourceForge account and appropriate
  permissions.

