| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <!-- $Id$ --> |
| <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.3//EN" "http://forrest.apache.org/dtd/document-v13.dtd"> |
| <document> |
| <header> |
| <title>FOP Development: Release Mechanics</title> |
| <version>$Revision$</version> |
| </header> |
| <body> |
| <section id="intro"> |
| <title>Introduction</title> |
| <p>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.</p> |
| <p>The checklist below was assembled from Christian Geisert's notes. It will be expanded in the future as he has time.</p> |
| </section> |
| <section id="checklist"> |
| <title>Checklist</title> |
| <ul> |
| <li>Determine whether this is a Release Candidate or a Release.</li> |
| <li>Determine whether further testing is required.</li> |
| <li>Commit any outstanding changes</li> |
| <li>Create a branch called <code>branches/fop-v_vv</code></li> |
| <li>Edit release notes (<code>README</code> and |
| <code>status.xml</code> in the root).</li> |
| <li>Add the release to <code>news-data.xml</code>; |
| remove links to release notes of older versions from this file.</li> |
| <li>Update the FAQ (<code>faq.xml</code>) to the new release.</li> |
| <li>Check and update the copyright year in NOTICE and build.xml.</li> |
| <li>Update the file <code>doap.rdf</code>, and the files |
| <code>index.xml</code>, <code>site.xml</code>, |
| <code>download.xml</code>, <code>fo.xml</code>, |
| <code>maillist.xml</code>, <code>quickstartguide.xml</code>, |
| <code>faq.xml</code> and <code>status.xml</code> |
| in directory <code>xdocs</code> for the new version.</li> |
| <li>Update the version numbers in the release column on the |
| compliance page (<code>compliance.xml</code>); update the compliance in the release column |
| to the current state (development column).</li> |
| <li>Update version number in <code>build.xml</code> (not to be merged back |
| into trunk).</li> |
| <li>Copy trunk documentation directory to a new directory with |
| the new version number, and update the .htaccess file for |
| redirections.</li> |
| <li>Copy <code>test/fotree/disabled-testcases.xml</code> and |
| <code>test/layoutengine/disabled-testcases.xml</code> to the |
| new version directory |
| <code><version>/fotree/disabled-testcases.xml</code> and |
| <code><version>/layoutengine/disabled-testcases.xml</code>. |
| Copy <code>known-issues.xml</code> to the new version |
| directory. Copy <code>knownissues-overview.xml</code> from the |
| current to the new version directory, and update the <code>xi:include</code> |
| links in it.</li> |
| <li>Update the tab names and directories in tabs.xml</li> |
| <li>Delete the previous version directory.</li> |
| <li>Update index.xml in the new version directory.</li> |
| <li>Update compiling.xml in the new version directory: change the intro for trunk to that for a release.</li> |
| <li>Build the dist files (<code>build[.sh] dist</code>) |
| and upload them to your web directory on |
| <code>people.apache.org</code></li> |
| <li>Ask on fop-dev to check the branch and the generated dist |
| files for errors.</li> |
| <li>Tag the source tree with the release ID. For example, if the release is 1.0: |
| <code>svn copy https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/fop-1_0 https://svn.apache.org/repos/asf/xmlgraphics/fop/tags/fop-1_0</code></li> |
| <li>Make a fresh checkout with the just created tag: |
| <code>svn co https://svn.apache.org/repos/asf/xmlgraphics/fop/tags/fop-1_0</code></li> |
| <li>Copy jimi and jai to lib/ (jimi-1.0.jar, jai_core.jar, jai_codec.jar)</li> |
| <li>Copy jce-jdk13-119.jar from <link href="http://www.bouncycastle.org/latest_releases.html"> |
| from http://www.bouncycastle.org/latest_releases.html</link> to lib/</li> |
| <li>Copy the hyphenation patterns jar file |
| <code>fop-hyph.jar</code> to lib/ (e.g. from |
| <code>http://sourceforge.net/projects/offo</code></li> |
| <li>Alternatively, create a build-local.properties file that points to the above libs.</li> |
| <li>Run build[.sh] dist. Do this using Sun JDK 1.4.2_08 or later. A Forrest installation is needed.</li> |
| <li>Create signatures. Don't forget to upload your KEY: |
| <code>gpg -a -b --force-v3-sigs fop-1.0-src.tar.gz</code> etc.</li> |
| <li>Upload the dist and signature files to your web directory |
| on people.apache.org (An account on minotaur is needed): |
| <code>scp fop-1.0*.tar.gz* |
| chrisg@people.apache.org:public_html/</code></li> |
| <li>Check permissions: |
| <code>chmod 664 ... ; chgrp xmlgraphics ...</code></li> |
| <li>Add MD5 sums: <code>md5 fop-1.0-src.tar.gz > |
| fop-1.0-src.tar.gz.md5</code> etc.</li> |
| <li>Make a test download.</li> |
| <li>Start a vote for the release on |
| <code>general@xmlgraphics.a.o</code>. The message should point |
| to the release files and list the MD5 sums (<code>cat |
| *.md5</code>). The vote is open for 72hrs.</li> |
| <li>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 <code>source</code> and |
| <code>binaries</code>. Create links to all files in the |
| <code>fop</code> directory. Remove the links to the files of |
| the previous version.</li> |
| <li>Update HEADER.html and README.html in people.apache.org:/www/www.apache.org/dist/xmlgraphics/fop/</li> |
| <li>Wait 24 hours (for the mirrors to catch up).</li> |
| <li>Merge the changes of the subversion release branch back |
| into trunk (not the version number in the build file) and |
| delete the branch.</li> |
| <li>Deploy the updated documentation to the FOP website.</li> |
| <li>Post announcements on fop-dev and fop-user and other related mailing lists.</li> |
| <li>Ask a Bugzilla admin (Christian Geisert) to add a bugzilla |
| entry for the new release id, or create an issue at |
| <code>https://issues.apache.org/jira/browse/INFRA</code>.</li> |
| </ul> |
| </section> |
| <section id="other-checklists"> |
| <title>Resources</title> |
| <p>The following is a sample of some other project release checklists, which might be consulted for ideas:</p> |
| <ul> |
| <li><jump href="http://svn.apache.org/repos/asf/xmlgraphics/batik/trunk/MAINTAIN">Apache Batik</jump></li> |
| <li><jump href="http://svn.apache.org/repos/asf/ant/core/trunk/ReleaseInstructions">Apache Ant</jump></li> |
| <li><jump href="http://jakarta.apache.org/cactus/participating/release_checklist.html">Apache Cactus</jump></li> |
| </ul> |
| <p>Following are links with information about mirroring:</p> |
| <ul> |
| <li><jump href="http://www.apache.org/dev/mirrors.html">Apache Mirroring</jump></li> |
| <li>Stefan Bodewig's <jump href="http://people.apache.org/~bodewig/mirror.html">Making your Downloads Mirrorable</jump></li> |
| </ul> |
| </section> |
| <section id="announcements"> |
| <title>Announcing the release</title> |
| <p>Here's a collected list of places where to announce new FOP releases:</p> |
| <ul> |
| <li>fop-dev@xmlgraphics.apache.org</li> |
| <li>fop-users@xmlgraphics.apache.org</li> |
| <li>general@xmlgraphics.apache.org</li> |
| <li>general@xml.apache.org</li> |
| <li>announce@apache.org (from your apache.org address)</li> |
| <li>xsl-list@lists.mulberrytech.com (subscriber-only)</li> |
| <li>XSL-FO@yahoogroups.com (subscriber-only)</li> |
| <li>www-xsl-fo@w3.org</li> |
| <li>docbook-apps@lists.oasis-open.org (subscriber-only)</li> |
| <li>dita-users@yahoogroups.com (subscriber-only) (http://dita-ot.sourceforge.net/)</li> |
| <li>http://xslfo-zone.com/news/index.jsp</li> |
| <li>http://www.w3.org/Style/XSL/</li> |
| <li>http://freshmeat.net/projects/fop/</li> |
| <li>any others?</li> |
| </ul> |
| </section> |
| </body> |
| </document> |