blob: 82b7e1ba02505e04de79ba5f9c09d33a2879ca22 [file] [log] [blame]
Title: Apache(tm) FOP Development: Release Process
#Apache™ FOP Development: Release Process
## Introduction { #intro}
This page documents the process of creating a Apache™ FOP release. FOP releases are coordinated by some designated member of the team. 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 is based on a combination of input from from Christian Geisert and Simon Pepping.
## 1. Define the new release { #define}
- Determine which open bugs must be solved before a release can take place (release critical bugs). Make this bug depend on each release critical bug and write a short argument why the bug is release critical.
- Determine whether this is a Release Candidate or a Release.
- Determine whether further testing is required.
- Commit any outstanding changes
## 2. Prepare the new release { #prepare}
- Create a branch called `branches/fop-v_vv`
- Edit release notes (`README` and `status.xml` in the root).
- Check and update the copyright year in NOTICE and build.xml.
- Update version number in `build.xml` (not to be merged back into main).
- Build the dist files (`build[.sh] dist`) and upload them to your web directory on `people.apache.org`
- Ask on `fop-dev` ML to check the branch and the generated dist files for errors.
- Tag the source tree with the release ID.
- Make a fresh checkout with the just created tag
- Copy the `jai_core.jar` and `jai_codec.jar` 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 libraries.
- Run `build[.sh] dist`. Do this using JDK 1.5 or later.
- Create signatures. Don't forget to upload your KEY: `gpg -a -b --force-v3-sigs fop-1.0-src.tar.gz` etc.
## 3. Publish the new release { #publish}
- Upload the dist and signature files to your web directory on people.apache.org (An account on minotaur is needed): `scp fop-1.0*.tar.gz* chrisg@people.apache.org:public_html/`
- Check permissions: `chmod 664 ... ; chgrp xmlgraphics ...`
- Make a test download.
## 4. Vote for the new release { #vote}
- Start a vote for the release on `general@xmlgraphics.apache.org`. The message should point to the release files and list the MD5 sums (`cat *.md5`). The vote should remain 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).
## 5. Update material { #update}
### 5.1 Git { #git}
- Merge the changes of the git release branch back into main (not the version number in the build file).
### 5.2 Jira { #jira}
- Ask an FOP Jira admin to
- rename main entry into the new release name,
- and create a new main entry
or
- create an issue at [Jira-INFRA](https://issues.apache.org/jira/browse/INFRA).
### 5.3 CMS { #cms}
- Copy main directory to a new release directory with the new version number.
- Copy following files to the new release directory:
- `known-issues.mdtext` as `knownissues-overview.mdtext`
- Update all markdown linkIds to the new release (elementids are of the form `[linkId]: fop_version/path_to_page_XXX"` at the beginning of the files):
- `faq.mdtext`
- `fo.mdtext`
- `index.mdtext`
- `maillist.mdtext`
- `quickstartguide.mdtext`
- Update the following files to the new release
- `fop-sidenav.mdtext`
- `download.mdtext`
- `compliance.mdtext` (version number in new release column)
- `changes.mdtext`
- In the new release directory, update the following files:
- `index.mdtext`
- `compiling.mdtext` (change the introduction for main to that for a release).
- `changes_x.x.mdtext`
- Publish the updated documentation to the FOP website.
### 5.4 Maven { #maven}
- Deploy the maven bundle.
## 6. Announce the new release { #announce}
Post announcements on following suggested lists:
- 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/
## Resources { #resources}
The following is a sample of some other project release checklists, which might be consulted for ideas:
- [Apache Batik](http://svn.apache.org/repos/asf/xmlgraphics/batik/trunk/MAINTAIN)
- [Apache Ant](http://svn.apache.org/repos/asf/ant/core/trunk/ReleaseInstructions)
- [Apache Cactus](http://jakarta.apache.org/cactus/participating/release_checklist.html)
Following are links with information about mirroring:
- [Apache Mirroring](https://www.apache.org/dev/mirrors.html)
- Stefan Bodewig's [Making your Downloads Mirrorable](http://people.apache.org/~bodewig/mirror.html)