Project Maintanance Howto ------------------------- This document introduces newcomers to the management and maintenance of the Batik project hosted under xml.apache.org (http://xml.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 properties 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://nagoya.apache.org/wiki/apachewiki.cgi?SigningReleases 3) Update the splash screens: build splash 4) Commit these changes to CVS, in general only the following files should be modified: build.xml KEYS xdocs/images/splash.png xdocs/images/splash.svg resources/org/apache/batik/apps/svgbrowser/resources/squiggle.png 5) tag the release on CVS: cvs rtag e.g., cvs rtag batik-1_1rc3 xml-batik. Note: sometimes, it is necessary to remove a tag because the tests failed and a fix was required. To remove a tag, use the rtag command: cvs rtag -d e.g., cvs rtag -d batik-1_1rc3 xml-batik 6) checkout the tagged release to a new directory: cvs co -r xml-batik e.g., cvs co -r batik-1_1rc3 xml-batik 7) 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. 8) test the distributions build regard build regard.manual The build results are in xml-batik/test-reports. 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. 9) Update the README file describing the content of the release and the modifications which have taken place: http://xml.apache.org/batik/dist/README 10) 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 11) 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://nagoya.apache.org/wiki/apachewiki.cgi?SigningReleases e.g. 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/xml/batik/ e.g., 'scp batik-1.1rc1.zip* vhardy@xml.apache.org:/www/www.apache.org/dist/xml/batik/' 11) Finish setting up the distribution directory in accordance with: http://www.apache.org/dev/mirrors.html http://cvs.apache.org/~bodewig/mirror.html This makes sure that the distribution is mirrored nicely around the world. Start by logging into cvs.apache.org (e.g. 'ssh vhardy@cvs.apache.org'). First make sure file permissions are correct. The new files should be owned by group 'xml' and be group writable. The following commands can do this (don't worry about links): chgrp xml 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/xml/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 'archives.apache.org/dist/xml/batik' from 'www.apache.org/dist/xml/batik' so you can just remove an old release from www.apache.org: rm batik-1.5b4.zip 10) 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) make sure you checked out the module "xml-site/targets/batik" in the same directory as your project module 2) run the build script with target "site" 3) commit the xml-site/targets/[project] directory 4) connect to xml.apache.org with your account 5) execute "cd /www/xml.apache.org/[project]" 6) execute "cvs update" 7) zip the Batik javadoc of the latest stable Batik release 8) ftp the Batik javadoc to xml.apache.org/batik 9) upzip the Batik java so that the javadoc is available at xml.apache.org/batik/javadoc/index.html [NOTE: you must have commit access on xml-site to be able to do this] Nightly Builds -------------- The nightly builds are current performed by a crontab entry in Thomas DeWeese's cvs.apache.org account: /home/deweese/bin/nightly.csh