Forrest Release Process ============================ This file documents the steps a release manager should follow when making a new Forrest release. Preparations ------------ - Ensure that as many PMC members as possible have their PGP keys in the KEYS file. - Ensure that there are no copyright issues. The committers and PMC would have been continually monitoring this. There are some tools to assist with scanning for issues, e.g. svn://committers/relicense/src/perl/relicense.txt svn://committers/tools/ Building the distribution ------------------------- - Edit build.xml and replace the '-dev' text with '' i.e. nothing: around line 35: to: - Edit status.xml, remove the -dev from the current tag, and set the release date. Also add a new for development on the next version e.g. from: ... to: ... - Edit main/forrest.build.xml to update the version tag to remove "-dev". There are two occurences: around line 29: ^^^^ around line 52: | Forrest Site Builder | | 0.7-dev | ^^^^ - Create a new file, etc/RELEASE-NOTES-x.y.txt, where x.y is the version currently being released. It is best to copy an earlier RELEASE-NOTES file, to keep a common layout. In this file, provide a summary of changes, and check for general accuracy. Scan the status.xml/changes and the Roadmap via the issues tracker, to find the important issues. - Check out a fresh copy from SVN to make sure you have no local modifications, especially those that might be hidden by svn:ignore settings. Alternatively, run 'svn st --no-ignore' and delete any extra files. - Set your Java version to be the lowest specified of our supported versions. - Run 'build release-dist' to generate the distributions. - Two archives are created: apache-forrest-X.Y.tar.gz apache-forrest-X.Y.zip - Repeat that on a Windows machine. - Use the .tar.gz from the UNIX machine and .zip from the Windows machine. - In that way, SVN will ensure correct line-endings on all text files. - Understand how to sign releases and generate MD5 and PGP. http://wiki.apache.org/incubator/SigningReleases - Create a maintenance branch in SVN with svn copy -m "Create the x.y release branch from r#####" \ https://svn.apache.org/repos/asf/forrest/trunk \ https://svn.apache.org/repos/asf/forrest/branches/forrest_xy_branch where 'xy' is a compact form of the version (e.g. 04, 041, 05). See http://svn.apache.org/repos/asf/forrest/branches/ - Test the actual distribution on various platforms. - Upload the release candidates and signatures to a committer's webspace. - Ask all developers to test (command-line, run, and webapp). - Each developer can do 'build release- dist' and test locally. Coordinate to ensure that each is using the same SVN revision and that the MD5 sums match. - Follow the actual user instructions in README.txt and index.html - Use it to build some difficult sites. - Ensure that the compressed archives will unpack correctly. - If everything looks okay, and after the Vote has finished, tag SVN with svn copy -m "Create tag forrest_xy from release branch" \ https://svn.apache.org/repos/asf/forrest/branches/forrest_xy_branch \ https://svn.apache.org/repos/asf/forrest/tags/forrest_xy where 'xy' is a compact form of the version (e.g. 04, 041, 05). See http://svn.apache.org/repos/asf/forrest/tags/ Upload and announcement ----------------------- - Upload the tarballs, the *.asc and *.md5 files, **and the RELEASE-NOTES** to www.apache.org at /www/www.apache.org/ dist/forrest/ Each PMC member has a server account and belongs to the forrest group. The process is documented at http://www.apache.org/~bodewig/mirror.html Ensure correct file permissions: chgrp forrest; chmod 664 Leave the previous dist there as well, until after the announcement. Note: The other files there (HEAD.html README.html LICENSE.txt KEYS) are all automatically updated from the SVN:forrest/dist/ repository. - If necessary, re-arrange stuff at the Archives site http://archive.apache.org/dist/forrest/ You should not need to touch anything, the artifacts are automatically copied from the main /dist/forrest/ - Wait for the various mirrors to pick up the new files. For some mirrors, this takes only a few hours. However others are slow. How long to wait is a tradeoff. See "Status of mirrors" http://www.apache.org/mirrors/ - Edit the forrest/site-author/content/xdocs/mirrors.ihtml - Edit the Forrest home page in the "News and events" section. - Rebuild and publish the Forrest website as normal. FIXME: There is a bug (FOR-300) in the forrest build which generates to main/site/mirrors.html instead of build/site/mirrors.html - On the server, remove the top-level files and "docs" and "howtwo" directories using 'svn rm', then checkout the new release docs, e.g. cd /www svn co http://svn.apache.org/repos/asf/forrest/site/0.7 forrest.apache.org - Edit xml-site/src/documentation/content/xdocs/news.xml and record the announcement, and then commit the new HTML to xml-site/targets/forrest Note that they use forrest-0.6 to build their website. - Send announcement email. Typically this is sent as: To: dev@forrest.apache.org, user@forrest.apache.org, announce@apache.org, announcements@xml.apache.org Subject: [Announce] Apache Forrest X.Y.Z !! Always refer them to the mirror facility !! Never mention the URL www.apache.org/ dist/ in email. Use the template at etc/announcement.txt Use your spelling checker! See previous announcements: 0.2 http://marc.theaimsgroup.com/?l=xml-apache-announce&m=103746673310573 0.3 http://marc.theaimsgroup.com/?l=xml-apache-announce&m=104399934113331 0.4 http://marc.theaimsgroup.com/?l=jakarta-announce&m=104510734501302 0.5 http://marc.theaimsgroup.com/?l=xml-apache-announce&m=106352706005681 0.5.1 http://marc.theaimsgroup.com/?l=xml-apache-announce&m=106541447606765 0.6 http://marc.theaimsgroup.com/?l=xml-apache-announce&m=109784461425740 - Do the Freshmeat announcement: http://freshmeat.net/projects/forrest/ Cleanups -------- - Edit build.xml, increment the version and add a -dev tag: around line 35: - Edit main/forrest.build.xml and update the version: around line 29: around line 52: | Forrest Site Builder | | 0.8-dev | - Remove the old dist files from the dist/forrest/ directory. It has already been archived at archives.apache.org - Tweak the "release" versions via "admin" interface at our Jira. - Review the Issues for the old version and move any Incomplete ones up. - Change the "fixfor" attribute to the next verion for the "project.issues-rss-url" RSS feed in forrest.properties All done! Or perhaps not.. if you think of anything, please add it here.