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/ where 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/ 5) Check out the tagged release to a new directory: svn co https://svn.apache.org/repos/asf/xmlgraphics/batik/tags/ 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