
                         Project Maintanance Howto
                         -------------------------
                     
This document introduces newcomers to the management and maintenance of 
java project hosted under xml.apache.org.

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 for main
    releases (e.g. 1.1) but not for release candidates (e.g. 1.1rc3)

 2) tag the release on CVS:
      cvs rtag <tag> <module>
      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 <tag> <module>
      e.g., cvs rtag -d batik-1_1rc3 xml-batik

 3) checkout the tagged release:
      cvs co -r <tag> xml-batik
      e.g., cvs co -r batik-1_1rc3 xml-batik

 4) 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.

 5) test the distributions
      build regard
    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.

 5) Update the README file describing the content of the release and
    the modifications which have taken place:
    http://xml.apache.org/batik/dist/README 

 6) - 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

    - scp the distributions and the README under /www/xml.apache.org/dist/batik/
    e.g., scp batik-1.1rc1.zip vhardy@xml.apache.org:/www/xml.apache.org/dist/batik/

 7) send an email to the batik-dev and batik-users mailing lists announcing the
    release.

Site Creation
-------------

For creation 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" 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"
 
[NOTE: you must have commit access on xml-site to be able to do this]