You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2011/05/25 09:58:51 UTC
svn commit: r1127416 - in /incubator/isis/trunk/src/docbkx/guide:
images/release/nexus-staging-1.png images/release/nexus-staging-2.png
images/release/nexus-staging-3.png images/release/nexus-staging-4.png
isis-contributors-guide.xml
Author: danhaywood
Date: Wed May 25 07:58:50 2011
New Revision: 1127416
URL: http://svn.apache.org/viewvc?rev=1127416&view=rev
Log:
updates to contributors guide
Added:
incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-1.png (with props)
incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-2.png (with props)
incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-3.png (with props)
incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-4.png (with props)
Modified:
incubator/isis/trunk/src/docbkx/guide/isis-contributors-guide.xml
Added: incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-1.png
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-1.png?rev=1127416&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-1.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-2.png
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-2.png?rev=1127416&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-2.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-3.png
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-3.png?rev=1127416&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-3.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-4.png
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-4.png?rev=1127416&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/isis/trunk/src/docbkx/guide/images/release/nexus-staging-4.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: incubator/isis/trunk/src/docbkx/guide/isis-contributors-guide.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/src/docbkx/guide/isis-contributors-guide.xml?rev=1127416&r1=1127415&r2=1127416&view=diff
==============================================================================
--- incubator/isis/trunk/src/docbkx/guide/isis-contributors-guide.xml (original)
+++ incubator/isis/trunk/src/docbkx/guide/isis-contributors-guide.xml Wed May 25 07:58:50 2011
@@ -4136,8 +4136,18 @@ svn switch https://svn.apache.org/repos/
<title>Dry run</title>
<para>The <code>release:prepare</code> command updates all
- <acronym>POM</acronym>s, creates a tag. It's common practice to
- perform a dry run first:</para>
+ <acronym>POM</acronym>s, creates a tag.</para>
+
+ <para><note>
+ <para>This command appears to fail if the (snapshot) artifacts
+ have not been built with a regular <code>maven clean
+ install</code>. In particular, you shouldn't manually delete
+ <filename>~/.m2/repository/org/apache/isis</filename> directory
+ beforehand (a practice sometimes done in order to "start from
+ scratch").</para>
+ </note></para>
+
+ <para>It's common practice to perform a dry run first:</para>
<programlisting>mvn release:prepare -P apache-release -D dryRun=true</programlisting>
@@ -4196,7 +4206,7 @@ What is the release version for "Apache
<para>First up, clean up any release artifacts.</para>
- <programlisting>mvn release:clean </programlisting>
+ <programlisting>mvn release:clean</programlisting>
<para>Then, run the prepare step (skipping tests will reduce the
elapsed time):</para>
@@ -4284,16 +4294,19 @@ svn: No such revision 1126567</programli
</sect2>
<sect2>
- <title>Post-build sanity check</title>
+ <title>Post-prepare sanity check</title>
<para>You should end up with artifacts in your local repo with the
- new version <emphasis>0.x.x-RCn-incubating</emphasis>.</para>
+ new version <emphasis>0.x.x-RCn-incubating</emphasis>. There are
+ then a couple of sanity checks that you can perform:</para>
- <para>As a sanity check, use the locally built quickstart archetype
- to generate the application, and make sure that the generated
- application runs ok.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Use the locally built quickstart archetype to generate the
+ application, and make sure that the generated application runs
+ ok.</para>
- <programlisting>mvn archetype:generate \
+ <programlisting>mvn archetype:generate \
-D groupId=com.mycompany \
-D artifactId=myapp \
-D archetypeCatalog=local \
@@ -4301,9 +4314,23 @@ svn: No such revision 1126567</programli
-D archetypeArtifactId=quickstart-archetype \
-D archetypeVersion=0.x.x-RCn-incubating</programlisting>
- <para>Check that the generated app's artifacts point to the correct
- version of <emphasis>Isis</emphasis> (specifically: without a
- <literal>-SNAPSHOT</literal> suffix), and runs as expected.</para>
+ <para>Check that the generated app's artifacts point to the
+ correct version of <emphasis>Isis</emphasis> (specifically:
+ without a <literal>-SNAPSHOT</literal> suffix), and runs as
+ expected.</para>
+ </listitem>
+
+ <listitem>
+ <para>unzip the source-release ZIP and check it compiles</para>
+
+ <para>The ZIP file resides in
+ <filename>isis-0.x.x-RCn-incubating-incubating-source-release.zip</filename>
+ in <filename>target</filename> directory of the parent
+ <package>[oai:isis]</package> module. Unzip in a new directory,
+ and build using <code>mvn clean install</code> (and <code>mvn
+ site-deploy -D deploy=local</code> if you have the time).</para>
+ </listitem>
+ </itemizedlist>
<para>If you find problems and the release was performed on a branch
(for a release candidate), then just delete the branch and start
@@ -4368,16 +4395,37 @@ svn: No such revision 1126567</programli
<programlisting>mvn release:perform -Papache-release</programlisting>
- <para></para>
-
- <para>*** further details required here.</para>
-
- <para></para>
+ <para>The command starts off by checking out the codebase from the
+ tag:</para>
<programlisting>[INFO] [release:perform {execution: default-cli}]
[INFO] Checking out the project to perform the release ...
-[INFO] Executing: cmd.exe /X /C "svn --non-interactive checkout https://svn.apache.org/repos/asf/incubator/isis/branches/0.1.2-RC1-incubating/tags/isis-0.1.2-RC1-incubating D:\svn\ai\branches\0.1.2-RC1-incubating\trunk\target\checkout"
-[INFO] Working directory: D:\svn\ai\branches\0.1.2-RC1-incubating\trunk\target</programlisting>
+[INFO] Executing: cmd.exe /X /C
+ "svn --non-interactive checkout https://svn.apache.org/repos/asf/incubator/isis/branches/0.x.x-RCn-incubating/tags/isis-0.x.x-RCn-incubating
+ /users/uuuuuuuu/ai/branches/0.x.x-RCn-incubating/trunk/target/checkout"
+[INFO] Working directory: /users/uuuuuuuu/ai/branches/0.x.x-RCn-incubating/trunk/target/
+...</programlisting>
+
+ <para>All being well this command will complete
+ successfully:</para>
+
+ <programlisting>...
+[INFO] [INFO] BUILD SUCCESSFUL
+[INFO] [INFO] ------------------------------------------------------------------------
+[INFO] [INFO] Total time: 17 minutes 19 seconds
+[INFO] [INFO] Finished at: Wed May 25 07:42:05 BST 2011
+[INFO] [INFO] Final Memory: 431M/811M
+[INFO] [INFO] ------------------------------------------------------------------------
+[INFO] Cleaning up after release...
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 20 minutes 25 seconds
+[INFO] Finished at: Wed May 25 07:42:07 BST 2011
+[INFO] Final Memory: 45M/991M
+[INFO] ------------------------------------------------------------------------</programlisting>
+
+ <para></para>
<para></para>
@@ -4387,22 +4435,29 @@ svn: No such revision 1126567</programli
<sect3>
<title>Check the Repository</title>
- <para>This will put release artifacts into a newly created staging
- repository . You will need to log into repository.apache.org to
- see it.</para>
+ <para>If the <code>mvn release:perform</code> has worked then it
+ will have put release artifacts into a newly created staging
+ repository . </para>
+
+ <para>Log onto <ulink
+ url="http://repository.apache.org">http://repository.apache.org</ulink>
+ (using your ASF LDAP account) and check that the release has been
+ staged:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/release/nexus-staging-1.png"
+ scale="55" />
+ </imageobject>
+ </mediaobject>
<para>If nothing appears in a staging repo you should stop here
and work out why.</para>
<para>Assuming that the repo has been populated, make a note of
its repo id; this is needed for the voting thread (see <xref
- linkend="sec.VotingThread" />).</para>
-
- <para></para>
-
- <para>*** confirm the procedure described here.</para>
-
- <para></para>
+ linkend="sec.VotingThread" />). In the screenshot above the id is
+ <emphasis>org.apache.isis-008</emphasis>.</para>
</sect3>
<sect3>
@@ -4413,11 +4468,46 @@ svn: No such revision 1126567</programli
This will make it available so that people can check the
release.</para>
- <para></para>
-
- <para>*** further details required here.</para>
+ <para>Press the Close button and complete the dialog:</para>
- <para></para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/release/nexus-staging-2.png"
+ scale="55" />
+ </imageobject>
+ </mediaobject>
+
+ <para>All being well, the close shold complete
+ successfully:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/release/nexus-staging-3.png"
+ scale="55" />
+ </imageobject>
+ </mediaobject>
+
+ <para>The Nexus repository manager will also email you with
+ confirmation of a successful close.</para>
+
+ <para>If Nexus has problems with the key signature, however, then
+ the close will be aborted:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/release/nexus-staging-4.png"
+ scale="55" />
+ </imageobject>
+ </mediaobject>
+
+ <para>Use <code>gpg --keyserver hkp://pgp.mit.edu --recv-keys
+ nnnnnnnn</code> to confirm that the key is available.</para>
+
+ <note>
+ <para>Unfortunately, Nexus does not seem to allow subkeys to be
+ used for signing. See <xref linkend="apx.KeyGeneration" /> for
+ more details.</para>
+ </note>
</sect3>
</sect2>
</sect1>
@@ -4782,11 +4872,20 @@ gpg></programlisting>
<title>Subkey Generation</title>
<para>It's recommended to use a subkey with an expiry date to sign
- releases, rather than your main, non-expiring subkey. If a subkey is
- present, then gpg will use it in preference to the main key.</para>
+ releases, rather than your main, non-expiring key. If a subkey is
+ present, then gpg will use it for signing in preference to the main
+ key.</para>
+
+ <note>
+ <para>After (binary) release artifacts are created, they are
+ deployed to the ASF's Nexus staging repository. However, Nexus seems
+ unable to retrieve a subkey from the public key server. Until we
+ find a fix/workaround for this, all releases should be signed just
+ with a regular non-expiring main key.</para>
+ </note>
- <para>Enter the gpg shell using (the identifier of) your main
- key:</para>
+ <para>To create a subkey Enter the gpg shell using (the identifier of)
+ your main key:</para>
<programlisting>gpg --edit-key xxxxxxxx
gpg></programlisting>