commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r1460196 - /commons/cms-site/trunk/content/xdoc/releases/prepare.xml
Date Sat, 23 Mar 2013 17:23:54 GMT
Author: bodewig
Date: Sat Mar 23 17:23:54 2013
New Revision: 1460196

Nexus and svnpubsub for release candidates


Modified: commons/cms-site/trunk/content/xdoc/releases/prepare.xml
--- commons/cms-site/trunk/content/xdoc/releases/prepare.xml (original)
+++ commons/cms-site/trunk/content/xdoc/releases/prepare.xml Sat Mar 23 17:23:54 2013
@@ -432,7 +432,9 @@
           Now create the tag for the release candidate.  There are two options how to do
-          you can either use the Maven release plugin or create the tag manually.</p>
+          you can either use the Maven release plugin or create the tag manually.  In either
case, record
+          the svn revision number, you'll need it for the release vote mail.</p>
       <h4>Manual Method<a name="Manual_Method"></a></h4>
         <p>Create a clean SVN workspace for the release candidate:</p>
@@ -491,65 +493,56 @@
     for further details.
     (the compiler.source and versions only affect source syntax and class
file format)
-    <p>
-	Post the release candidate into the public folder <em>~/public_html</em> in
your home directory 
-    on <code></code>.
-    </p>
+    <p>To create all distributables and upload the Maven artifacts to the ASF Nexus
instance run
+      <pre>
+        mvn deploy -Prelease
+      </pre>
+      </p>
+      <p>This will PGP-sign all artifacts and upload them to a new staging repository,
Nexus itself will create MD5
+        and SHA1 checksums for all files that have been uploaded.</p>
+      <p>Unfortunately this uploads more than should be part of the Maven repository,
in particular the binary and source
+        distribution <code>.tar.gz</code> and <code>.zip</code> files
are there as well.  Before you
+        <a href="">close</a>
the staging
+        repository you must remove the tarballs/zips together with their PGP signatures and
checksums using
+        the Nexus web interface.  While
+        you are at it you can also remove the checksums Nexus created for the PGP signatures
of the
+        remaining artifacts, they are not needed at all.</p>
+      <p><em>If anybody knows how we can avoid uploading the distributions, please
lend a hand.  The manual step is
+        not only annoying, uploading the files also wastes time and bandwidth.</em></p>
+      <p>Once the unneeded files have been deleted you can now close the staging repository.</p>
+      <p>The tarballs and zips need to go to
+        <a href=""></a>.
+        this is the first release of foo after svnpubsub has been enabled you have to create
the directory
+        structure for your component.</p>
+      <pre>
+        svn mkdir -m "Creating initial directory structure for foo"
+        svn mkdir -m "Creating initial directory structure for foo"
+        svn mkdir -m "Creating initial directory structure for foo"
+      </pre>
+      <p>Then check out <code></code>
and copy the tarballs, checksums and 
+        PGP signatures to the appropriate directories.  You can find those artifacts inside
your local Maven repository.
+        The procedure will be something like (where <code>release_path</code>
points to your working copy of the dist repository):</p>
+      <pre>
+        version=1.2
+        repo_path=~/.m2/repository/org/apache/commons/commons-foo/${version}
+        release_path=~/foo-release
+        cp ${repo_path}/** ${release_path}/binaries
+        cp ${repo_path}/*.bin.tar.gz* ${release_path}/binaries
+        cp ${repo_path}/** ${release_path}/source
+        cp ${repo_path}/*.src.tar.gz* ${release_path}/source
+        cp RELEASE-NOTES.txt ${release_path}
+      </pre>
+      <p><code>svn add</code> the files and commit them.  Again, record
the revision number for the vote email.</p>
     <subsection name='Create the Release Candidate Website'>
-	As well as putting up the source and binary distributions in your home directory on
-	others to download and verify, the new website and Maven artifacts should also be published
there. If using Maven, 
+	The new website should be published in your home directory on If using
     run "mvn site" locally, tar or zip the site in target/ and scp and unpack the files
-    on
+      on in a directory <code>~/public_html/foo-1.2-RC1</code>.
-	The instructions for <a href="release.html">releasing to the mirrors</a> assume
the following directory
-	structure for the release candidate website, which you should set up in <code>public_html</code>
in your
-	home directory on, with "RC1" replaced by whatever the current RC number
-	<pre>
-  ~/public_html/foo-1.2-RC1       (release notes, distribution tar/zips with sigs and hashes)
-  ~/public_html/foo-1.2-RC1/site  (output of "mvn site" run from the RC tag)
-  ~/public_html/foo-1.2-RC1/maven (Maven pom, jars with sigs and hashes) </pre>
-	The following script creates a local directory <code>${release_path}</code>
with the appropriate contents.
-    This directory can then be renamed, tarred/zipped and copied to your public_html to be
unpacked there.  The
-	script variable <code>${repo_path}</code> needs to point to the local Maven
repository root for the component,
-	for example: <pre>
-  version=1.2
-  repo_path=~/.m2/repository/org/apache/commons/commons-foo/${version}
-  release_path=~/foo-release </pre>
-  <pre>
-  # Generate the release artifacts and install them locally
-  mvn -Prc -DcreateChecksum=true install
-  #
-  # Copy the zips/tarballs and release notes to release directory
-  rm -rf ${release_path}
-  mkdir ${release_path}
-  cp ${repo_path}/*.zip ${release_path}
-  cp ${repo_path}/*.zip.* ${release_path}
-  cp ${repo_path}/*.gz ${release_path}
-  cp ${repo_path}/*.gz.* ${release_path}
-  cp RELEASE-NOTES.txt ${release_path}
-  #
-  # Copy site
-  cp -R target/site ${release_path}
-  #
-  # Copy Maven artifacts
-  cp -R ${repo_path} ${release_path}
-  #
-  # Rename Maven directory
-  mv ${release_path}/${version} ${release_path}/maven
-  #
-  # Delete tars/zips from Maven subdirectory
-  rm ${release_path}/maven/*.zip
-  rm ${release_path}/maven/*.zip*
-  rm ${release_path}/maven/*.gz
-  rm ${release_path}/maven/*.gz* </pre></p>
-    <p>
-    Be sure to check the signatures and hashes after copying and unpacking the files on
-    </p>
-	<p>
 	Note that when verifying this candidate site you need to be careful of absolute
 	URLs; following these will lead to the currently published site, not to the 
 	equivalent page on the new site being evaluated.
@@ -570,30 +563,30 @@
   so I would like to release Foo 1.2.
   Foo 1.2 RC1 is available for review here:
+ (svn revision XYZ)
   Maven artifacts are here:
   Details of changes since 1.1 are in the release notes:
   I have tested this with JDK 1.3, 1.4, 1.5 and 1.6 using maven2.
   The tag is here:
+ (svn revision DEF)
   (note some *relative* links are broken and the 1.2 directories are
   not yet created - these will be OK once the site is deployed)
   Clirr Report (compared to 1.1):
   RAT Report:
   Votes, please.  This vote will close in 72 hours, 0400 GMT 31-March 2010

View raw message