blob: 70fdc968ead268f32b19093959bacc17cf0b68ec [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
* Copyright 2001-2009 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/ -->
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "http://forrest.apache.org/dtd/document-v12.dtd">
<document>
<properties>
<title>Committer Notes</title>
</properties>
<body>
<section name="Updating the jUDDI Web Site">
<p>
The site source is located under our source tree at juddi/src/site. To build the site, simply invoke
mvn site in juddi/site. The built sources will be located at juddi/target/site. You should
get a clean build, and no broken links. There aren't any known issues with the site.
</p>
<p>
You must test your builds locally by running mvn site on your local box. You can do this by invoking
'mvn site' in the juddi root directory.
</p>
<p>
The commit process is a bit complicated.
The live site is hosted under the site source tree, -not- the juddi src tree. The juddi/target/site
directory hierarchy maps to the ws-site/targets/juddi directory hierarchy.
Once you've built the site copy the latter hierarchy to the former, and then commit the
changes. The live site is updated about every 6 hours from cvs.
</p>
<p>
You must -also- commit the changes you've made under juddi/src/site to persist the changes for the next
committer to be able to reproduce your modifications.
</p>
<p>
To fully clean any site build you've created, you can safely delete everything under juddi/target.
</p>
</section>
<section name="Release Process">
<p><strong>Release Manager</strong></p>
<p>
One committer will be elected or hopefully volunteer to assemble the binary releases and label the source tree.
</p>
<p><strong>Digitally Signing Releases</strong></p>
<p>
Apache policy requires binary releases be digitaly signed. The Apache process has not been formalized, but a general discussion about creating digital signatures
and signing releases is available at
<link href="http://nagoya.apache.org/wiki/apachewiki.cgi?SigningReleases">http://nagoya.apache.org/wiki/apachewiki.cgi?SigningReleases</link>.
This covers some basics about using <link href="http://www.gnupg.org">GnuPG</link> to create key pairs and sign releases. Our goal here is to
discuss jUDDI signing requirements, and provide some useful examples to release managers, not discuss digital signatures or encryption technology.
Our discussion uses <link href="http://www.gnupg.org">GnuPG</link>, but any compliant software could be used. The examples below come from the
<link href="http://www.gnupg.org/gph/en/manual.html">GnuPG manual</link>. This discussion is not a subsitute for reading that manual.
</p>
<p>
Creating a key pair is pretty simple using <link href="http://www.gnupg.org/gph/en/manual.html#AEN26">gpg</link>. Simply invoke gpg and take all the defaults when prompted. You
will have to provide a passphrase. Be sure to remember the passphrase since you'll need it anytime you use the key pair. The passphrase should itself be sufficiently
secure; it shouldn't simply be a word in a dictionary, should include a mix of digits and alphanumeric characters, etc.
</p>
<source>
gpg --gen-key
</source>
<p>
You should also generate a <link href="http://www.gnupg.org/gph/en/manual.html#AEN26">revocation certificate</link>. This allows you to declare the key
pair invalid publically, if you ever lose your private key, or it becomes compromised.
</p>
<source>
gpg --output revoke.as --gen-revoke mykey
</source>
<p>
The release manager is responsible for signing the binaries. The release manager must have a public key listed in the 'KEYS' file at the root of our source tree.
The release manager must create a <link href="http://www.gnupg.org/gph/en/manual.html#AEN161">detached signature</link> for each binary. This detached
signature must be posted along with our binaries, and allow our users to verify the binary's integrity.
</p>
<source>
gpg --output jUDDI.tar.gzip.asc --detach-sig jUDDI.tar.gzip
</source>
<p>All jUDDI committers are encouraged to create public/ private key pairs and place the public half into our 'KEYS'
file at the root of our source tree. jUDDI committers are also encouraged to verify one another's keys and sign them, to help
create a web of trust. Verifying a signature and a binary guarantees (in any real sense) the binary was assembled by the person
that signed it. However, it does not prove the person signing it can be trusted.
<link href="http://www.gnupg.org/gph/en/manual.html#AEN335">A web of trust</link> can be created by signing one another's keys.
This allows users and developers to 'trust' the person who created the document-signature pair to provide a secure, safe
binary.
</p>
</section>
</body>
</document>