1) Grab a copy of the current quickstart and unzip. 2) Tag for a release (see CVS branching document) 3) Export that version from CVS: cvs export -r RB_2_3 calendar2 4) Replace the quickstart/calendar2 directory (from #1) with the resulting calendar2 directory (from #3). 5) Remove caladmin, cal, and ucal from quickstart/jakarta-tomcat-5.0.28/webapps/, along with the corresponding .war files. [Note: this may not be necessary if ant deploy already does this, but that's not clear to me.] 6) In quickstart/calendar2, run ant clean ant quickstart.build ant deploy ant clean 7) Rebuild the database, if it has changed: rm hsqldb-1.7.3.3/demo/events.* ant hsqldb [in the quickstart directory] [in another window] setenv CLASSPATH quickstart/hsqldb-1.7.3.3/lib/hsqldb.jar java org.hsqldb.util.DatabaseManager In the application, choose 'Server' (not 'Web Server', and add ':8887' to the URL (omitting the final '/'. execute script db/scheme.hsqldb execute script resources/calendar/initialCalendars.sql shutdown quit 8) Start up the apps, log into the public entry app, and add 'sample sponsor' and 'sample location' 9) Remove any log files in jakarta[...]/logs 10) Copy the quickstart directory (from #6) into quickstart2 11) Run tests on quickstart2. I always log into pubevents entry, create a new public event, go to pubevents display and add the new event to my personal calendar, add a new personal event, then delete the events I've just added. Then I add a subscription to a category that will include the event and remove it. 12) Run any Junit tests: cd calendar2; ant test 13) Assuming everything works, modify the release notes at the bottom of quickstart/README to mention any new features. I've found a Perl script that creates a Changelog from the CVS check-in messages that is useful for this. You should be able to find it on the web by googling for 'cvs2cl.pl'. Make sure the changed README file appears in both the release branch of CVS and the mainline, as well as in calendar2/quickstartFiles/root. 14) Ensure that any other changes made to quickstart since the release was tagged are reflected in the release branch (and the mainline, if appropriate). diff -r quickstart/calendar2 rbX.X 15) Remove the quickstart2 directory and copy the quickstart directory to quickstart.save. 16) zip up the quickstart and calendar2 directories. Create a new release.notes file consisting of the message you added to the bottom of quickstart/README 17) Move quickstart.zip, calendar2.zip and release.notes to the website, renaming the old copies appropriately. 18) Update the website pages so the old news messages reference the old copies, and add a news item for the new release. 19) Download quickstart.zip and calendar2.zip from the website, unzip, and diff with the master versions. Hopefully they're the same. 20) Tag the release branch. E.g., REL_2_2_RELEASED 21) Send messages to the dev and users list notifying them of the new release.