FOP Development: Release Mechanics
Introduction
This page documents the process of creating a FOP release. FOP releases are coordinated by one member of the team (currently Christian Geisert), so others do not ordinarily need to use this information. The purpose of documenting it here is to facilitate consistency, ensure that the process is captured, and to allow others to comment on the process.
The checklist below was assembled from Christian Geisert's notes. It will be expanded in the future as he has time.
Checklist
- Determine whether this is a Release Candidate or a Release.
- Determine whether further testing is required.
- Commit any outstanding changes
- Create a branch called branches/fop-v_vv
- Edit release notes (README and status.xml in the root).
- Update the index.xml and site.xml for the new version.
- Update the version numbers in the release column on the compliance page (compliance.xml); update the compliance in the release column to the current state (development column).
- Update version number in build.xml (not to be merged back into trunk).
- Copy trunk documentation directory to a new directory with the version number, and update any links and the .htaccess file for redirections.
- Copy test/fotree/disabled-testcases.xml and test/layoutengine/disabled-testcases.xml to the new version directory <version>/fotree/disabled-testcases.xml and <version>/layoutengine/disabled-testcases.xml. Copy known-issues.xml to the new version directory. Copy knownissues-overview.xml from the previous to the new version directory.
- Delete the previous version directory.
- Build the dist files (build[.sh] dist) and upload them to your web directory on people.apache.org
- Ask on fop-dev to check the branch and the generated dist files for errors.
- Tag the source tree with the release ID. For example, if the release is 0.94: svn copy https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/fop-0_94 https://svn.apache.org/repos/asf/xmlgraphics/fop/tags/fop-0_94
- Make a fresh checkout with the just created tag: svn co https://svn.apache.org/repos/asf/xmlgraphics/fop/tags/fop-0_94
- Copy jimi and jai to lib/ (jimi-1.0.jar, jai_core.jar, jai_codec.jar)
- Copy jce-jdk13-119.jar from from http://www.bouncycastle.org/latest_releases.html to lib/
- Copy the hyphenation patterns jar file fop-hyph.jar to lib/ (e.g. from http://sourceforge.net/projects/offo
- Alternatively, create a build-local.properties file that points to the above libs.
- Run build[.sh] dist. Do this once using Sun JDK 1.3.1_15 or later and once with Sun JDK 1.4.2_08 or later. A Forrest installation is needed.
- Create signatures. Don't forget to upload your KEY: gpg -a -b --force-v3-sigs fop-0.94-src.tar.gz etc.
- Upload the dist and signature files to your web directory on people.apache.org (An account on minotaur is needed): scp fop-0.94*.tar.gz* chrisg@people.apache.org:public_html/
- Check permissions: chmod 664 ... ; chgrp xmlgraphics ...
- Add MD5 sums: md5 fop-0.94-src.tar.gz > fop-0.94-src.tar.gz.md5 etc.
- Make a test download.
- Start a vote for the release on general@xmlgraphics.a.o. The message should point to the release files and list the MD5 sums (cat *.md5). The vote is open for 72hrs.
- When the release is accepted, copy the release files, their md5 sum files and the signature files to /www/www.apache.org/dist/xmlgraphics/fop/ in the subdirectories source and binaries. Create links to all files in the fop directory. Remove the links to the files of the previous version.
- Update HEADER.html and README.html in people.apache.org:/www/www.apache.org/dist/xmlgraphics/fop/
- Wait 24 hours (for the mirrors to catch up).
- Merge the changes of the subversion release branch back into trunk (not the version number in the build file) and delete the branch.
- Deploy the updated documentation to the FOP website.
- Post announcements on fop-dev and fop-user and other related mailing lists.
- Ask a Bugzilla admin (Christian Geisert) to add a bugzilla entry for the new release id, or create an issue at https://issues.apache.org/jira/browse/INFRA.
Resources
The following is a sample of some other project release checklists, which might be consulted for ideas:
Following are links with information about mirroring:
- Apache Mirroring
- Stefan Bodewig's Making your Downloads Mirrorable
Announcing the release
Here's a collected list of places where to announce new FOP releases:
- fop-dev@xmlgraphics.apache.org
- fop-users@xmlgraphics.apache.org
- general@xmlgraphics.apache.org
- general@xml.apache.org
- announce@apache.org (from your apache.org address)
- xsl-list@lists.mulberrytech.com (subscriber-only)
- XSL-FO@yahoogroups.com (subscriber-only)
- www-xsl-fo@w3.org
- docbook-apps@lists.oasis-open.org (subscriber-only)
- dita-users@yahoogroups.com (subscriber-only) (http://dita-ot.sourceforge.net/)
- http://xslfo-zone.com/news/index.jsp
- http://www.w3.org/Style/XSL/
- http://freshmeat.net/projects/fop/
- any others?