blob: 3e992dbc6609c4fc73bf8742756f5a356fe9e512 [file] [log] [blame]
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