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.