| |
| Project Maintenance Howto |
| ------------------------- |
| |
| This document introduces newcomers to the management and maintenance of |
| the Batik project hosted under xmlgraphics.apache.org |
| (http://xmlgraphics.apache.org/batik/). |
| |
| Each project is required to use Ant as build tool and to be coherent with the |
| rest of the build systems of the other projects, so that nightly builds and |
| distribution creation can be done automatically without per-project scripts. |
| |
| This implies it is *very* important that property names are not changed |
| but kept consistent with the other projects. |
| |
| Distribution Creation |
| --------------------- |
| |
| For creating a distribution the following steps must be done: |
| |
| 1) Modify build.xml with the distribution version. Only modify the version |
| for main releases (e.g. version value="1.1") but not for release |
| candidates or beta versions where only the revision type and |
| number should be updated (e.g. revisionType value="beta" and |
| revisionNumber value="3") |
| |
| 2) Add your public key to the KEYS file in the root directory of |
| Batik if it isn't already there. The following link has the |
| details on what this means and how to do it. |
| |
| http://wiki.apache.org/old/SigningReleases |
| |
| 3) Commit these changes to SVN, in general only the following files |
| should be modified: |
| |
| build.xml |
| KEYS |
| |
| 4) Tag the release on SVN: |
| |
| svn copy https://svn.apache.org/repos/asf/xmlgraphics/batik/trunk \ |
| https://svn.apache.org/repos/asf/xmlgraphics/batik/tags/<tag> |
| |
| where <tag> is the version name, e.g. "batik-1_1rc3". |
| |
| Note: sometimes, it is necessary to remove a tag because the |
| tests failed and a fix was required. To remove a tag, use |
| the delete command: |
| |
| svn delete https://svn.apache.org/repos/asf/xmlgraphics/batik/tags/<tag> |
| |
| 5) Check out the tagged release to a new directory: |
| |
| svn co https://svn.apache.org/repos/asf/xmlgraphics/batik/tags/<tag> |
| |
| 6) Run the build script with target "dist-zip": |
| |
| build dist-zip |
| |
| This will create the binary release zip, the source release zip and the |
| javadoc zip. |
| |
| 7) Test the distributions |
| |
| build regard |
| build regard.manual |
| |
| The build results are in the test-reports directory. Check that there |
| are no show-stoppers for the release. If there are fixes required, |
| you need to remove the tag (as explained in step 2) and then fix |
| any problem that requires attention. Then, you need to start at |
| step 1) again. |
| |
| Note that you will need to have a copy of the W3C SVG |
| working group test suite in the 'beSuite' directory and |
| have that directory under the same root as xml-batik. See |
| http://www.w3.org/Graphics/SVG for instructions on how to get |
| the SVG test suite. |
| |
| 8) Update the README and CHANGES files describing the content of the |
| release and the modifications which have taken place, |
| http://www.apache.org/dist/xmlgraphics/batik/README. This file has a |
| small header followed by the contents of the CHANGES file from the |
| distribution. |
| |
| 9) If you are creating a release candidate, rename the distribution files |
| to an rc name. For example: |
| |
| mv batik-src-1.1.zip batik-src-1.1rc1.zip |
| |
| 10) Sign and create md5 hashes for the releases. The following link |
| has full details on how to sign things (if you don't want to know |
| anything the last section 'Using GPG' tells you what commands work). |
| |
| http://wiki.apache.org/old/SigningReleases |
| |
| For example: |
| |
| gpg --detach-sig --armor --output batik-1.5.zip.asc batik-1.5.zip |
| md5 batik-1.5.zip > batik-1.5.zip.md5 |
| |
| 11) Use 'scp' to copy the distributions (with md5 hashes, and signature |
| files), the README, and the KEYS file under |
| |
| /www/www.apache.org/dist/xmlgraphics/batik/ |
| |
| For example: |
| |
| scp batik-1.1rc1.zip* vhardy@people.apache.org:/www/www.apache.org/dist/xml/batik/ |
| |
| 12) Finish setting up the distribution directory in accordance with: |
| |
| http://www.apache.org/dev/mirrors.html |
| http://people.apache.org/~bodewig/mirror.html |
| |
| This makes sure that the distribution is mirrored nicely around |
| the world. |
| |
| Start by logging into svn.apache.org (e.g. 'ssh vhardy@svn.apache.org'). |
| |
| First make sure file permissions are correct. The |
| new files should be owned by group 'xmlgraphics' and be group writable. |
| The following commands can do this (don't worry about links): |
| |
| chgrp xmlgraphics batik-1.5.zip |
| chmod 664 batik-1.5.zip |
| |
| If you are making a 'final' release you should delete the existing |
| 'current' links and re-point them at the new release (do this |
| for every file with a version number in it - including md5, and |
| asc files): |
| |
| cd /www/www.apache.org/dist/xmlgraphics/batik |
| rm batik-current.zip |
| ln -s batik-1.5.zip batik-current.zip |
| rm batik-current.zip.md5 |
| ln -s batik-1.5.zip.md5 batik-current.zip.md5 |
| rm batik-current.zip.asc |
| ln -s batik-1.5.zip.asc batik-current.zip.asc |
| <- lots more files -> |
| |
| Finally remove the old releases (every release is automatically copied |
| to 'archive.apache.org/dist/xmlgraphics/batik' from |
| 'www.apache.org/dist/xmlgraphics/batik' so you can just remove an old |
| release from www.apache.org): |
| |
| rm batik-1.5b4.zip |
| |
| 13) Wait approximately 24hrs for the files to get to all the mirrors, |
| then send an email to the batik-dev and batik-users mailing lists |
| announcing the release. |
| |
| Site Creation |
| ------------- |
| |
| For creating the web site, the following steps must be done: |
| |
| [Note: due to JVM font-rendering problems, this is best done on a |
| Windows machine] |
| |
| 1) run the build script with target "publish", which will generate the |
| site and use ForrestBot to commit it to the repository |
| 2) connect to people.apache.org with your account |
| 3) execute "cd /www/xmlgraphics.apache.org/batik" |
| 4) execute "svn update" |
| |
| If the javadocs don't need to be regenerated, the "publishdoc" build |
| target can be used instead of "publish". This will be much quicker. |
| |
| Note that because of the way ForrestBot works, any files that are no |
| longer part of the site will still remain in Subversion, and thus will |
| still be deployed. To delete files permanently, check out |
| https://svn.apache.org/repos/asf/xmlgraphics/site/deploy/batik/ and make |
| changes there directly. |
| |
| Nightly Builds |
| -------------- |
| |
| The nightly builds are currently performed by a crontab entry in |
| Thomas DeWeese's people.apache.org account: /home/deweese/bin/nightly.csh |