I have a first cut at an updated release.html, including some instructions for maven users and a few other updates. I am attaching a patch here, but if you don't want to apply the patch and do maven xdoc from commons-build, you can see the (graphically stripped) result here:
http://www.apache.org/~psteitz/release.html.


I know that section 12 (Deploy jar and project.xml to Java-Repository) must be doable in a better way using maven, but I am not sure exactly how to do it all automagically. The same is likely true for the physical deployment of the full distributions to /dist/jakarta. I will incorporate any better ideas or corrections before applying anything.

In addition to the maven additions, I removed the following:

1) direction to update components.xml on the commons site (I don't think that this is necessary any more.)

2) the reference to www/jakarta.apache.org/builds/jakarta-commons/release/commons-foo/, since this seems to be defunct (i.e., no more component-level directories).

As I said, this is a first cut. Corrections or suggestions for improvement are most welcome.

-Phil

Index: xdocs/releases/release.xml
===================================================================
RCS file: /home/cvs/jakarta-commons/commons-build/xdocs/releases/release.xml,v
retrieving revision 1.13
diff -u -r1.13 release.xml
--- xdocs/releases/release.xml  20 Jul 2004 21:06:22 -0000      1.13
+++ xdocs/releases/release.xml  13 Dec 2004 02:42:27 -0000
@@ -24,10 +24,11 @@
  <body> 
 <section name='Cutting The Release - Step By Step'>
     <p>
-    This document gives step-by-step instructions for cutting a release. These 
instructions
-    assume that the component uses an <code>Ant</code> based master build. If 
the component 
-    being released uses a <code>Maven</code> based master build then you'll 
need to improvise a little!
-    Any patches for <code>Maven</code> based master builds will be gratefully 
received.
+    This document gives step-by-step instructions for cutting a release. These 
+    instructions generally assume that the component uses an <code>Ant</code> 
+    based master build, though some directions for <code>Maven</code> users 
have 
+    been interspersed. Any patches to improve the <code>Maven</code> 
instructions 
+    will be gratefully received.
     </p>
     <p>
     This documentation is also pretty *nix-centric. Hopefully, release 
managers using windoz will
@@ -46,8 +47,9 @@
     </p>
     <p>
     In particular, the build version for the component must have been updated 
to the release number. 
-    This is found in <code>build.xml</code>. The component should also be 
tested and the documentation
-    reviewed.
+    This is found in <code>build.xml</code> and, for <code>Maven</code> 
builds, as the 
+    <code>currentVersion</code> element in <code>project.xml</code>. The 
component should also 
+    be tested and the documentation reviewed.
     </p>
   </subsection>
   
@@ -56,6 +58,9 @@
     Prepare a local working directory to do all the zipping, signing and so 
on. 
     The <code>examples</code> assume this directory is called 
<code>release/foo</code>.
     </p>
+    <p>
+    If you are using Maven to cut the release, you can skip this step.  
+    </p>
   </subsection>
   
     <subsection name='2 Update CVS to Release Tag'>
@@ -77,12 +82,73 @@
     <p>
     Clean build the binary distribution in the standard way. 
     </p>
+    <p>
+    Using Ant:
     <pre>
 $ ant clean
 $ ant dist
     </pre>
+    </p>
+    <p>
+    Or using Maven:
+    <pre>
+$ maven clean dist
+    </pre>
+    </p>
+    <p>
+    The maven <code>dist</code> goal will create both binary and source
+    distributions, as well as release archives, so you can skip steps 4 and 5
+    below if you are using maven.  The source and binary release archives will 
+    be created for you in <code>commons-foo/target/distributions</code>. In 
order 
+    for the files to be named correctly and to have the right contents, the 
+    following conditions have to be satistified:
+    <ul>
+    <li>
+    The <code>currentVersion</code> in project.xml must match the release 
number.
+    </li>
+    <li>
+    Special provisions have to be made to get NOTICE.txt included in the both 
the 
+    distribution tars/zips and the included jars. To make sure that this file 
+    is included in maven-generated jars, include the following in the
+    <code>build</code> section of your <code>project.xml</code> (or just add 
the
+    <code>resource</code> defined below to the build resources you already 
have).
+    <pre>
+&lt;resources&gt;
+  &lt;resource&gt;
+    &lt;directory&gt;${basedir}&lt;/directory&gt;
+      &lt;includes&gt;
+        &lt;include&gt;NOTICE.txt&lt;/include&gt;
+      &lt;/includes&gt;
+      &lt;targetPath&gt;META-INF&lt;/targetPath&gt;
+  &lt;/resource&gt;
+&lt;/resources&gt;
+    </pre>
+    One way to get maven to include NOTICE.txt in the top-level directory of 
+    source and binary distribution files (zips and tars) is to define preGoals
+    for maven's dist goal that copy NOTICE.txt to the source and binary 
assembly 
+    directories that it uses to package the release. To do this, add the 
snippet 
+    below to maven.xml.
+    <pre>
+&lt;preGoal name="dist:build-bin"&gt;  
+  &lt;copy todir="${maven.dist.bin.assembly.dir}"&gt;
+    &lt;fileset file='${basedir}/NOTICE.txt'/&gt;
+  &lt;/copy&gt;
+&lt;/preGoal&gt;
+&lt;preGoal name="dist:build-src"&gt;
+  &lt;copy todir="${maven.dist.src.assembly.dir}"&gt;
+    &lt;fileset file='${basedir}/NOTICE.txt'/&gt;
+  &lt;/copy&gt;
+&lt;/preGoal&gt;
+    </pre>
+    </li>
+    </ul>
+    </p>
     <p>
-Review the generated documentation and in particular ensure that the version 
number is correct. Check <code>dist/RELEASE-NOTES.txt</code>.
+Review the generated documentation and in particular ensure that the version
+number is correct. Check <code>dist/RELEASE-NOTES.txt</code>  Also verify that
+the release jar(s) contain valid Manifest(s), as described 
+<a href="./prepare.html#Update The Jar Manifest">here</a> as well as both 
+LICENSE.txt and NOTICE.txt.
     </p>
     </subsection>
     
@@ -228,7 +294,7 @@
     </pre>
 </li>
 <li>
-<strong>Check Sums</strong>.
+<a name="verify sums"><strong>Verify Sums</strong></a>.
 Verify md5 check sums. If you can, use another application to double check the 
sums. Here
 verifications are performed using openssl.
 <pre>
@@ -394,12 +460,33 @@
 
 <subsection name='12 Deploy jar and project.xml to Java-Repository'>
     <p>
+    <ul>
+    <li>
     Your jar file(s) should also be placed in 
-    <code>/www/www.apache.org/dist/java-repository/commons-foo/jars</code>.
+    <code>/www/www.apache.org/dist/java-repository/commons-foo/jars</code>,
+    along with md5 checksum file(s) created, named and verified as above
+    (see <a href="#6 Create Sums">Create Sums</a> and <a href="#verify sums">
+    Verify Sums</a>).   
+    </li>
+    <li>
     If available, your project.xml should be placed in 
     <code>/www/www.apache.org/dist/java-repository/commons-foo/poms</code>
     as the file <code>commons-foo-1.2.pom</code>. 
     Ensure the version number matches the one inside the 
<code>project.xml</code>.
+    </li>
+    <li>
+    The current html version of the Apache Software License should be placed in
+    <code>/www/www.apache.org/dist/java-repository/commons-foo/licenses</code>
+    as the file <code>license.html</code>.  If this file does not
+    exist or reflects an out-of-date version, copy a current version from 
+    another component directory. There should also be a symlink named
+    <code>commons-foo.license</code> in this directory.  If this link does
+    not exist, create it using
+    <pre>
+&gt; ln -s license.html commons-foo.license 
+    </pre>
+    </li>      
+    </ul>
     </p>
     <p>
     These files will then be mirrored to the iBiblio java repository and 
picked up by build tools.
@@ -491,10 +578,17 @@
 
 
 <subsection name='15 Update Commons Web Site'>
-    <ul>
-    <li>
-    <strong>Update Links</strong>.
-        Update the API Docs and Release notes links (whilst you're still 
logged in on www.apache.org)
+<p>
+For mavenized components, executing 
+<pre>
+maven -Dmaven.username=&lt;your-apache-username&gt; sshdeploy
+</pre>
+will update the component web site.  Verify that the correct version of both
+the release notes and the API docs appear on the live site.
+</p>
+<p>
+If your site is not maven-generated, update the API Docs and Release notes
+links manually (while you're still logged in on www.apache.org).
 <pre>
 &gt; cd /www/jakarta.apache.org/commons/foo
 &gt; rm RELEASE-NOTES.txt
@@ -504,35 +598,8 @@
 &gt; ln -s commons-foo-1.2/RELEASE-NOTES.txt RELEASE-NOTES.txt
 &gt; ln -s commons-foo-1.2/docs/api api
 </pre>
-    </li>
-    <li>
-    <strong>Update Shared Pages</strong>.
-    (You can log off www.apache.org now.)
-Edit the commons components page 
(<code>jakarta-commons/xdocs/components.xml</code>) to reflect the
-new release. Add the new release to the list under the component description. 
If the list of releases
-for your component is getting long then please consider removing some of the 
older ones.
-Check, commit and then update the web site in the normal manner.
-<pre>
-&gt; cd /www/jakarta.apache.org/commons/
-&gt; cvs -q up 
-</pre>
-    </li>
-    <li>
-    <strong>Update Component Pages</strong>
-        Make sure that the component's web site is up to date.
-    </li>
-    <li>
-    <strong>Check commons release directory</strong>
-Check the commons release directory for your component on Daedalus 
-(<code>www/jakarta.apache.org/builds/jakarta-commons/release/commons-foo/</code>).
 
-Make sure that it has a <code>README.html</code> telling users that new 
release should be
-obtained through the mirrors.
-If this file does not exist, please create one.
-Instructions are given in <a href='mirror.html#4 Update commons release 
directory'>First Time Mirroring</a>.
-    </li>
-    </ul>
+</p>
 </subsection>
-
 
 <subsection name='16 Create Announcements'>
 <p>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to