| |
| Project Maintanance 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 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://wiki.apache.org/old/SigningReleases |
| |
| 3) Update the splash screens: |
| build splash |
| |
| 4) Commit these changes to SVN, 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 SVN: |
| svn copy http://svn.apache.org/repos/asf/xmlgraphics/batik/trunk \ |
| http://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 http://svn.apache.org/repos/asfk/xmlgraphics/batik/tags/<tag> |
| |
| 6) checkout the tagged release to a new directory: |
| svn co http://svn.apache.org/repos/asfk/xmlgraphics/batik/tags/<tag> |
| |
| 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://www.apache.org/dist/xml/batik/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://wiki.apache.org/old/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@xmlgraphics.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://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 '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 SVN directory |
| https://svn.apache.org/repos/asf/xmlgraphics/site/deploy/batik |
| as "xml-site/targets/batik" in the same directory as your project module |
| 2) run the build script with target "site" |
| 3) commit the site/deploy/batik directory |
| 4) connect to xml.apache.org with your account |
| 5) execute "cd /www/xmlgraphics.apache.org/batik" |
| 6) execute "svn update" |
| |
| [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 people.apache.org account: /home/deweese/bin/nightly.csh |