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 2015/08/05 01:39:03 UTC

isis-site git commit: ISIS-1082: splitting out release procedures into separate sections

Repository: isis-site
Updated Branches:
  refs/heads/asf-site 4bfa521e1 -> 7ad1d79e0


ISIS-1082: splitting out release procedures into separate sections


Project: http://git-wip-us.apache.org/repos/asf/isis-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis-site/commit/7ad1d79e
Tree: http://git-wip-us.apache.org/repos/asf/isis-site/tree/7ad1d79e
Diff: http://git-wip-us.apache.org/repos/asf/isis-site/diff/7ad1d79e

Branch: refs/heads/asf-site
Commit: 7ad1d79e0031cfc7037b34db3212d689340d3cf8
Parents: 4bfa521
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Aug 5 00:38:11 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Aug 5 00:38:11 2015 +0100

----------------------------------------------------------------------
 content/documentation.html |    5 +-
 content/guides/cg.html     | 1074 ++++++++++++++++++++++-----------------
 2 files changed, 609 insertions(+), 470 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis-site/blob/7ad1d79e/content/documentation.html
----------------------------------------------------------------------
diff --git a/content/documentation.html b/content/documentation.html
index e314976..0b9ee1b 100644
--- a/content/documentation.html
+++ b/content/documentation.html
@@ -658,7 +658,10 @@ table.CodeRay td.code>pre{padding:0}
 <p><a href="./guides/cg.html#_cg_contributing">Contributing patches</a> (pull requests)</p>
 </li>
 <li>
-<p><a href="./guides/cg.html#_cg_committers_release-process">Cutting a release</a>)</p>
+<p><a href="./guides/cg.html#_cg_committers_release-process">Cutting a release</a></p>
+</li>
+<li>
+<p><a href="./guides/cg.html#_cg_committers_verifying-releases">Verifying a release</a></p>
 </li>
 </ul>
 </div></div></td>

http://git-wip-us.apache.org/repos/asf/isis-site/blob/7ad1d79e/content/guides/cg.html
----------------------------------------------------------------------
diff --git a/content/guides/cg.html b/content/guides/cg.html
index df84b34..b726f04 100644
--- a/content/guides/cg.html
+++ b/content/guides/cg.html
@@ -1454,10 +1454,10 @@ TODO
 <p>is</p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p><a href="./resources/templates/isis-templates-idea.xml">Download</a></p>
+<p><a href="../resources/templates/isis-templates-idea.xml">Download</a></p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p><a href="./resources/templates/isis-templates.xml">Download</a></p>
+<p><a href="../resources/templates/isis-templates.xml">Download</a></p>
 </div></div></td>
 </tr>
 <tr>
@@ -1468,10 +1468,10 @@ TODO
 <p>ju</p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p><a href="./resources/templates/junit4-templates-idea.xml">Download</a></p>
+<p><a href="../resources/templates/junit4-templates-idea.xml">Download</a></p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p><a href="./resources/templates/junit4-templates.xml">Download</a></p>
+<p><a href="../resources/templates/junit4-templates.xml">Download</a></p>
 </div></div></td>
 </tr>
 <tr>
@@ -1482,10 +1482,10 @@ TODO
 <p>jm</p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p><a href="./resources/templates/jmock2-templates-idea.xml">Download</a></p>
+<p><a href="../resources/templates/jmock2-templates-idea.xml">Download</a></p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p><a href="./resources/templates/jmock2-templates.xml">Download</a></p>
+<p><a href="../resources/templates/jmock2-templates.xml">Download</a></p>
 </div></div></td>
 </tr>
 <tr>
@@ -1496,7 +1496,7 @@ TODO
 <p>ad</p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p><a href="./resources/templates/asciidoc-templates-idea.xml">Download</a></p>
+<p><a href="../resources/templates/asciidoc-templates-idea.xml">Download</a></p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
 <p>(none )</p>
@@ -1505,7 +1505,7 @@ TODO
 </tbody>
 </table>
 <div class="paragraph">
-<p>The most commonly used Apache Isis domain objects templates are also listed on the <a href="./cheat-sheet.html">Apache Isis cheat sheet</a>.</p>
+<p>The most commonly used Apache Isis domain objects templates are also listed on the <a href="../cheat-sheet.html">Apache Isis cheat sheet</a>.</p>
 </div>
 </div>
 <div class="sect2">
@@ -2734,7 +2734,23 @@ git checkout master &amp;&amp; git merge --no-ff ISIS-1162_pr-31 &amp;&amp; git
 <div class="sect2">
 <h3 id="_cg_committers_cutting-a-release">10.2. Cutting a Release</h3>
 <div class="paragraph">
-<p>Apache Isis consists of two separately releasable modules; relative to the <a href="https://git-wip-us.apache.org/repos/asf/isis/repo?p=isis.git;a=tree">source code root</a> there are:</p>
+<p>The release process consists of:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>the release manager cutting the release (documented below)</p>
+</li>
+<li>
+<p>Members of the Apache Isis PMC voting on the release (documented <a href="#_cg_committers_verifying-releases">here</a>)</p>
+</li>
+<li>
+<p>the release manager performing post-release tasks (documented <a href="#_cg_committers_post-release-successful">here if vote was successful</a>, or <a href="#_cg_committers_post-release-unsuccessful">here if unsuccessful</a>).</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Apache Isis itself consists of two separately releasable modules; relative to the <a href="https://git-wip-us.apache.org/repos/asf/isis/repo?p=isis.git;a=tree">source code root</a> there are:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -2747,7 +2763,7 @@ git checkout master &amp;&amp; git merge --no-ff ISIS-1162_pr-31 &amp;&amp; git
 </ul>
 </div>
 <div class="paragraph">
-<p>This section details the process for formally releasing Isis modules.  It describes the process for both <code>core</code> and then the archetype.</p>
+<p>This section details the process for formally releasing Isis modules.  It describes the process for both <code>core</code> and then the archetype.  The subsequent sections describe how other committers can <a href="#_cg_committers_verifying-releases">verify a release</a> and how the release manager can then perform <a href="#_cg_committers_post-release">post-release</a> activities and set up for the next development iteration.</p>
 </div>
 <div class="paragraph">
 <p>If you&#8217;ve not performed a release before, then note that there are some configuration <a href="#_cg_committers_release-process-prereqs">prerequisites</a> that must be configured first.  In particular, you&#8217;ll need signed public/private keys, and the ASF Nexus staging repo inlocal <code>~/.m2/settings.xml</code> file.</p>
@@ -3578,727 +3594,845 @@ Please verify the release and cast your vote.  The vote will be open for a minim
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_after_the_vote">10.2.8. After the vote</h4>
-<div class="paragraph">
-<p>Once the vote has completed, post the results to the isis-dev mailing list.</p>
-</div>
-<div class="paragraph">
-<p>For example, use the following subject for a vote on Apache Isis Core:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">[RESULT] [VOTE] Apache Isis Core release 1.9.0</code></pre>
-</div>
 </div>
+<div class="sect2">
+<h3 id="_cg_committers_verifying-releases">10.3. Verifying a Release</h3>
 <div class="paragraph">
-<p>using the body (alter last line as appropriate):</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">The vote has completed with the following result :
-
-  +1 (binding): &lt;i&gt;list of names&lt;/i&gt;
-  +1 (non binding): &lt;i&gt;list of names&lt;/i&gt;
-
-  -1 (binding): &lt;i&gt;list of names&lt;/i&gt;
-  -1 (non binding): &lt;i&gt;list of names&lt;/i&gt;
-
-The vote is (UN)SUCCESSFUL.</code></pre>
+<p>The release process consists of:</p>
 </div>
-</div>
-<div class="sect4">
-<h5 id="_for_a_successful_vote">For a successful vote</h5>
-<div class="paragraph">
-<p>If the vote has been successful, then replace the <code>-RCn</code> tag with another without the qualifier.</p>
+<div class="ulist">
+<ul>
+<li>
+<p>the release manager cutting the release (documented <a href="#_cg_committers_cutting-a-release">here</a>)</p>
+</li>
+<li>
+<p>members of the Apache Isis PMC voting on the release (documented below)</p>
+</li>
+<li>
+<p>the release manager performing post-release tasks (documented <a href="#_cg_committers_post-release-successful">here if vote was successful</a>, or <a href="#_cg_committers_post-release-unsuccessful">here if unsuccessful</a>).</p>
+</li>
+</ul>
 </div>
 <div class="paragraph">
-<p>You can do this using the <code>scripts/promoterctag.sh</code> script; for example:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">sh scripts/promoterctag isis-1.9.0 RC1
-sh scripts/promoterctag simpleapp-archetype-1.9.0 RC1</code></pre>
-</div>
+<p>This section describes some guidance on what a voter (members of the Apache Isis PMC and anyone else who wishes) is expected to do before casting their vote in order to verify a release.</p>
 </div>
+<div class="sect3">
+<h4 id="_background">10.3.1. Background</h4>
 <div class="paragraph">
-<p>Then, continue onto the next section for the steps to promote and announce the release.</p>
-</div>
+<p>Whenever a release manager announces a vote on a release (as per the <a href="#_cg_committers_release-process">release process</a>) on the <a href="../support.html">dev mailing list</a>, it is the responsibility of the project&#8217;s PMC to cast their vote on the release.  Anyone else can also vote, but only members of the Apache Isis PMC&#8217;s vote are binding.</p>
 </div>
-<div class="sect4">
-<h5 id="_for_an_unsuccessful_vote">For an unsuccessful vote</h5>
 <div class="paragraph">
-<p>If the vote has been unsuccessful, then:</p>
+<p>Per this <a href="http://www.apache.org/dev/release.html">ASF documentation</a>, the legal requirements for an ASF release are:</p>
 </div>
 <div class="ulist">
 <ul>
 <li>
-<p>delete the remote branch, for example:<br></p>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">git push origin –delete isis-1.9.0 # $ISISART-$SISREL</code></pre>
-</div>
-</div>
-</li>
-<li>
-<p>delete the remote origin server&#8217;s tag, for example:<br></p>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">git push origin –delete refs/tags/isis-1.9.0-RC1</code></pre>
-</div>
-</div>
-</li>
-<li>
-<p>delete the tag that was created locally, for example:<br></p>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">git tag -d isis-1.9.0 # $ISISART-$SISREL</code></pre>
-</div>
-</div>
+<p>a source zip file + corresponding signature (signed by the release manager, which is in the ASF web of trust and in our KEYS file)</p>
 </li>
 <li>
-<p>drop the staging repository in <a href="http://repository.apache.org">Nexus</a></p>
+<p>all source files have the Apache license (this is ensured by the running of the rat plugin prior to release; you could run it on the unzipped source)</p>
 </li>
 <li>
-<p>rewind the release branch to prior to the previous release candidate, and continue from there.</p>
+<p>all dependencies are appropriately licensed; see the <code>DEPENDENCIES</code> file which is automatically generated from the POMs plus the supplemental-models.xml file</p>
 </li>
 </ul>
 </div>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_release_to_maven_central">10.2.9. Release to Maven Central</h4>
-<div class="paragraph">
-<p>From the Nexus pages, select the staging repository and select 'release' from the top menu.</p>
-</div>
-<div class="imageblock">
-<div class="content">
-<a class="image" href="images/release-process/nexus-release-1.png"><img src="images/release-process/nexus-release-1.png" alt="nexus release 1" width="600px"></a>
-</div>
-</div>
 <div class="paragraph">
-<p>This moves the release artifacts into an Apache releases repository; from there they will be automatically moved to the Maven repository.</p>
+<p>Note that the binaries are <em>not</em> an ASF release, they merely exist on the Maven central repo as a convenience. That said, you might also want to verify the release by pulling the binaries from the Maven staging repository. Details of how to do this are also documented below.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_release_source_zip">10.2.10. Release Source Zip</h4>
+<h4 id="_prerequisites_2">10.3.2. Prerequisites</h4>
 <div class="paragraph">
-<p>As described in the <a href="http://www.apache.org/dev/release-publishing.html#distribution_dist">Apache documentation</a>, each Apache TLP has a <code>release/TLP-name</code> directory in the distribution Subversion repository at <a href="https://dist.apache.org/repos/dist">https://dist.apache.org/repos/dist</a>. Once a release vote passes, the release manager should <code>svn add</code> the artifacts (plus signature and hash files) into this location. The release is then automatically pushed to <a href="http://www.apache.org/dist/">http://www.apache.org/dist/</a> by <code>svnpubsub</code>. Only the most recent release of each supported release line should be contained here, old versions should be deleted.</p>
+<p>To verify the source ZIP files, you will need to have imported the public keys used for signing Apache Isis releases. These can be downloaded from the root of the Apache Isis source tree.</p>
 </div>
 <div class="paragraph">
-<p>Each project is responsible for the structure of its directory. The directory structure of Apache Isis reflects the directory structure in our git source code repo:</p>
+<p>Since the Apache Isis source is mirrored on github.com, you can just use:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code>isis/
-  core/
-  example/
-    archetype/
-      simpleapp/</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">curl http://www.apache.org/dist/isis/KEYS &gt; /tmp/KEYS
+gpg --import /tmp/KEYS</code></pre>
 </div>
 </div>
 <div class="paragraph">
-<p>If necessary, checkout this directory structure:</p>
+<p>Also, we will be rebuilding Isis from source.  Therefore delete all Isis artifacts from your local Maven repo:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">svn co https://dist.apache.org/repos/dist/release/isis isis-dist</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">rm -rf ~/.m2/repository/org/apache/isis</code></pre>
 </div>
 </div>
-<div class="paragraph">
-<p>Next, add the new release into the appropriate directory, and delete any previous release. You can use <a href="upd_sh">the upd.sh script</a> to help; this downloads the artefacts from the Nexus release repository, adds the artefacts to subsversion and deletes the previous version.</p>
 </div>
+<div class="sect3">
+<h4 id="_verifying_source_artifacts">10.3.3. Verifying source artifacts</h4>
 <div class="paragraph">
-<p>At the end, commit the changes:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code>svn commit -m "publishing isis source releases to dist.apache.org"</code></pre>
+<p>You can either verify the source artifacts <a href="#_cg_committers_verifying-releases_manual-procedure">manuall</a>, or use a script that <a href="#__cg_committers_verifying-releases_automated-procedure">automates</a> the steps.</p>
 </div>
-</div>
-</div>
-<div class="sect3">
-<h4 id="_update_jira">10.2.11. Update JIRA</h4>
 <div class="sect4">
-<h5 id="_generate_release_notes">Generate Release Notes</h5>
+<h5 id="_cg_committers_verifying-releases_manual-procedure">Manual procedure</h5>
 <div class="paragraph">
-<p>From the root directory, generate the release notes for the current release, in Asciidoc format; eg:</p>
+<p>The following section describes the steps to perform to manually verify a release.</p>
+</div>
+<div class="sect5">
+<h6 id="_download_the_artifacts">Download the artifacts</h6>
+<div class="paragraph">
+<p>Download both the ZIP and .ASC files from the location specified in the voting email. To verify that the signature is correct, use:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">sh scripts/jira-release-notes.sh ISIS 1.9.0 &gt; /tmp/1</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">gpg --verify isis-x.y.z.zip.asc isis-x.y.z.zip</code></pre>
 </div>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_close_tickets">Close tickets</h5>
+<div class="sect5">
+<h6 id="_building_source_artifacts">Building source artifacts</h6>
 <div class="paragraph">
-<p>Close all JIRA tickets for the release, or moved to future releases if not yet addressed. Any tickets that were partially implemented should be closed, and new tickets created for the functionality on the ticket not yet implemented.</p>
-</div>
+<p>Assuming the ZIP file verifies, it should be unpacked, and then the artifact built from source.</p>
 </div>
-<div class="sect4">
-<h5 id="_mark_the_version_as_released">Mark the version as released</h5>
 <div class="paragraph">
-<p>In JIRA, go to the administration section for the Apache Isis project and update the versions as released.</p>
+<p>To build Apache Isis core, first download any dependencies:</p>
 </div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code>mvn dependency:go-offline</code></pre>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_update_website">10.2.12. Update website</h4>
 <div class="paragraph">
-<p>Update the Apache Isis (asciidoc) website:</p>
+<p>Check that no Isis artifacts have yet been downloaded, ie there is no <code>~/.m2/org/repository/org/apache/isis</code> directory. If there are, it could indicate that the release being verified incorrectly references previous versions of Apache Isis</p>
 </div>
-<div class="ulist">
-<ul>
-<li>
-<p>Paste in the JIRA-generated release notes generated above, adding to top of <code>adocs/documentation/src/main/asciidoc/release-notes.adoc</code>.  Also add a summary line for the release.</p>
-</li>
-<li>
-<p>Search for any <code>-SNAPSHOT</code> suffices, and remove</p>
-</li>
-<li>
-<p>Update the <a href="../download.html">download page</a> with a link to the source release zip file (under <a href="https://dist.apache.org/repos/dist/release/isis">https://dist.apache.org/repos/dist/release/isis</a>)</p>
-</li>
-<li>
-<p>update the <a href="../doap_isis.rdf">DOAP RDF</a> file (which provides a machine-parseable description of the project) should also be updated with details of the new release. Validate using the <a href="http://www.w3.org/RDF/Validator/">W3C RDF Validator</a> service.<br></p>
 <div class="paragraph">
-<p>For more information on DOAP files, see these <a href="http://projects.apache.org/doap.html">Apache policy docs</a>.</p>
+<p>Assuming all is ok, build using the <code>-o</code> offline flag:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code>mvn clean install -o</code></pre>
 </div>
-</li>
-<li>
-<p>Update the <a href="https://git-wip-us.apache.org/repos/asf/isis/repo?p=isis.git;a=blob_plain;f=STATUS;hb=HEAD">STATUS</a> file (in root of Apache Isis' source) should be updated with details of the new release.</p>
-</li>
-</ul>
 </div>
 <div class="paragraph">
-<p>Don&#8217;t forget to commit the <code>.adoc</code> changes and publish to the isis-site repo.</p>
+<p>Confirm that the versions of the Isis artifacts now cached in your local repository are correct.</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_announce_the_release">10.2.13. Announce the release</h4>
+<div class="sect5">
+<h6 id="_verifying_binary_artifacts">Verifying binary artifacts</h6>
 <div class="paragraph">
-<p>Announce the release to <a href="mailto:users@isis.apache.org">users mailing list</a>.</p>
+<p>You can verify the binary releases by configuring your local Maven install to point to the Maven staging repository (or repositories) and then using them, eg to run the <a href="../intro/getting-started/simpleapp-archetype.html">simpleapp archetype</a> and running the resultant app.</p>
 </div>
 <div class="paragraph">
-<p>For example, for a release of Apache Isis Core, use the following subject:</p>
+<p>Configuring your local Maven install amounts to updating the <code>~/.m2/settings.xml</code> file:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">[ANN] Apache Isis version 1.9.0 Released</code></pre>
+<pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;profiles&gt;</span>
+    <span class="tag">&lt;profile&gt;</span>
+        <span class="tag">&lt;id&gt;</span>verify-isis<span class="tag">&lt;/id&gt;</span>
+        <span class="tag">&lt;repositories&gt;</span>
+            <span class="tag">&lt;repository&gt;</span>
+                <span class="tag">&lt;id&gt;</span>isis-core-staging<span class="tag">&lt;/id&gt;</span>
+                <span class="tag">&lt;name&gt;</span>Isis Core Staging<span class="tag">&lt;/name&gt;</span>
+                <span class="tag">&lt;releases&gt;</span>
+                    <span class="tag">&lt;enabled&gt;</span>true<span class="tag">&lt;/enabled&gt;</span>
+                    <span class="tag">&lt;updatePolicy&gt;</span>always<span class="tag">&lt;/updatePolicy&gt;</span>
+                    <span class="tag">&lt;checksumPolicy&gt;</span>warn<span class="tag">&lt;/checksumPolicy&gt;</span>
+                <span class="tag">&lt;/releases&gt;</span>
+                <span class="tag">&lt;url&gt;</span>http://repository.apache.org/content/repositories/orgapacheisis-10xx<span class="tag">&lt;/url&gt;</span>
+                <span class="tag">&lt;layout&gt;</span>default<span class="tag">&lt;/layout&gt;</span>
+            <span class="tag">&lt;/repository&gt;</span>
+            ...
+        <span class="tag">&lt;/repositories&gt;</span>
+    <span class="tag">&lt;/profile&gt;</span>
+    ...
+<span class="tag">&lt;/profiles&gt;</span>
+<span class="tag">&lt;activeProfiles&gt;</span>
+    <span class="tag">&lt;activeProfile&gt;</span>verify-isis<span class="tag">&lt;/activeProfile&gt;</span>
+    ...
+<span class="tag">&lt;/activeProfiles&gt;</span></code></pre>
 </div>
 </div>
 <div class="paragraph">
-<p>And use the following body (summarizing the main points as required):</p>
+<p>where the repository URL is as provided in the VOTE email. If there is more than one repository (as is sometimes the case if multiple components have been released), then repeat the &lt;repository&gt; section for each.</p>
 </div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code>The Apache Isis team is pleased to announce the release of:
-* Apache Isis Core version 1.9.0
-* SimpleApp Archetype 1.9.0
-
-New features in this release include:
-- ...
-
-Full release notes are available on the Apache Isis website at [1].
-
-Note that:
-* ...
-
-You can access this release directly from the Maven central repo [2],
-or download the release and build it from source [3].
-
-Enjoy!
-
---The Apache Isis team
-
-[1] http://isis.apache.org/core/release-notes/isis-1.9.0.html
-[2] http://search.maven.org
-[3] http://isis.apache.org/download.html</code></pre>
+<div class="paragraph">
+<p>Once the vote has completed, the staging repositories will be removed and so you should deactive the profile (comment out the <code>&lt;activeProfile&gt;</code> element). If you forget to deactive the profile, there should be no adverse effects; Maven will just spend unnecessary cycles attempting to hit a non-existent repo.</p>
 </div>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_blog_post">10.2.14. Blog post</h4>
+<div class="sect4">
+<h5 id="_cg_committers_verifying-releases_automated-procedure">Automated procedure</h5>
 <div class="paragraph">
-<p>Finally, <a href="https://blogs.apache.org/roller-ui/login.rol">log onto</a> the <a href="http://blogs.apache.org/isis/">Apache blog</a> and create a new post. Copy-n-paste the above mailing list announcement should suffice.</p>
-</div>
+<p>To save some time in verifying an Apache Isis release we&#8217;ve assembled a script to automate the process. The script is tested on Mac OSX and Linux. Windows users can use Cygwin or <a href="http://msysgit.github.io/">msysgit</a>.</p>
 </div>
-<div class="sect3">
-<h4 id="_prepare_for_next_release">10.2.15. Prepare for next release</h4>
-<div class="sect4">
-<h5 id="_merge_into_code_master_code">Merge into <code>master</code></h5>
 <div class="paragraph">
-<p>Because we release from a branch, the changes made in the branch (changes to <code>pom.xml</code> made by the <code>maven-release-plugin</code>, or any manual edits) should be merged back from the release branch back into the <code>master</code> branch:</p>
+<p>It&#8217;s <em>recommended</em> that you start this process in an empty directory:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">git checkout master                   # update master with latest
-git pull
-git merge isis-1.9.0                  # merge branch onto master
-git branch -d isis-1.9.0              # branch no longer needed
-git push origin --delete isis-1.9.0   # remote branch no longer needed</code></pre>
-</div>
-</div>
+<pre class="CodeRay highlight"><code data-lang="bash">mkdir ~/verify-isis-release
+cd ~/verify-isis-release</code></pre>
 </div>
-<div class="sect4">
-<h5 id="_bump_versions">Bump versions</h5>
-<div class="paragraph">
-<p>With the release complete, now is a good time to bump versions of dependencies (so that there is a full release cycle to identify any possible issues).</p>
 </div>
 <div class="sect5">
-<h6 id="_update_parent_apache_isis_core">Update parent (Apache Isis Core)</h6>
-<div class="paragraph">
-<p>Check (via <a href="http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache%22%20a%3A%22apache%22">search.maven.org</a>) whether there is a newer version of the Apache parent <code>org.apache:apache</code>.</p>
-</div>
+<h6 id="_copy_script_to_local_machine">Copy script to local machine</h6>
 <div class="paragraph">
-<p>If there is, update the <code>&lt;version&gt;</code> in the <code>&lt;parent&gt;</code> element in the parent POM to match the newer version:</p>
+<p>Copy the following script, save to <code>verify-isis-release.sh</code>:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;parent&gt;</span>
-    <span class="tag">&lt;groupId&gt;</span>org.apache<span class="tag">&lt;/groupId&gt;</span>
-    <span class="tag">&lt;artifactId&gt;</span>apache<span class="tag">&lt;/artifactId&gt;</span>
-    <span class="tag">&lt;version&gt;</span>NN<span class="tag">&lt;/version&gt;</span>
-    <span class="tag">&lt;relativePath</span> <span class="tag">/&gt;</span>
-<span class="tag">&lt;/parent&gt;</span></code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">#!/bin/bash
+# Instructions:
+# -Create an empty directory
+# -Put a .txt file in it containing a list of all the urls of the zip files
+# -Run this script
+# TODO: enhance this script so it will stop when something is broken
+_download(){
+    for fil in `cat *.txt`
+    do
+       echo 'Downloading '$fil
+       curl  -L -O $fil
+       curl  -L -O $fil.asc
+    done
+}
+_verify(){
+    for zip in *.zip
+    do
+       echo 'Verifying '$zip
+       gpg --verify $zip.asc $zip
+    done
+}
+_unpack(){
+    echo 'Unpacking '
+    unzip -q '*.zip'
+}
+_build(){
+    echo 'Removing Apache Isis from local repo '$module
+    rm -rf ~/.m2/repository/org/apache/isis
+    COUNTER=0
+    for module in ./*/
+    do
+       COUNTER=$[COUNTER+1]
+       if [ $COUNTER -eq 1 ]
+       then
+         cd $module
+         echo 'Building Core '$module
+         mvn clean install -o
+         cd ..
+       else
+         cd $module
+         echo 'Building Module '$module
+         mvn clean install
+         cd ..
+       fi
+    done
+}
+# The work starts here
+_download
+_verify
+_unpack
+_build</code></pre>
 </div>
 </div>
 <div class="paragraph">
-<p>where <code>NN</code> is the updated version number.</p>
+<p>Make sure the script is executable:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code>chmod +x verify-isis-release.sh</code></pre>
+</div>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>The script could be enhanced in many ways, feel free to contribute improvements!</p>
+</div>
+</td>
+</tr>
+</table>
 </div>
 </div>
 <div class="sect5">
-<h6 id="_update_plugin_versions">Update plugin versions</h6>
+<h6 id="_create_an_input_file">Create an input file</h6>
 <div class="paragraph">
-<p>The <code>maven-versions-plugin</code> should be used to determine if there are newer versions of any of the plugins used to build Apache Isis. Since this goes off to the internet, it may take a minute or two to run:</p>
+<p>The input file is a plain <code>.txt</code> file containing all urls to the packages to be verified. Here&#8217;s a sample of the release of Apache Isis 1.8.0:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mvn versions:display-plugin-updates &gt; /tmp/foo
-grep &quot;\-&gt;&quot; /tmp/foo | /bin/sort -u</code></pre>
+<pre class="CodeRay highlight"><code>https://repository.apache.org/content/repositories/orgapacheisis-063/org/apache/isis/core/isis/1.8.0/isis-1.8.0-source-release.zip
+https://repository.apache.org/content/repositories/orgapacheisis-065/org/apache/isis/archetype/simpleapp-archetype/1.8.0/simpleapp-archetype-1.8.0-source-release.zip</code></pre>
 </div>
 </div>
 <div class="paragraph">
-<p>Review the generated output and make updates as you see fit. (However, if updating, please check by searching for known issues with newer versions).</p>
-</div>
+<p>The actual list of packages to be verified will be provided through the mailing list.</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_update_dependency_versions">Update dependency versions</h5>
+<div class="sect5">
+<h6 id="_execute_the_script">Execute the script</h6>
 <div class="paragraph">
-<p>The <code>maven-versions-plugin</code> should be used to determine if there are newer versions of any of Isis' dependencies. Since this goes off to the internet, it may take a minute or two to run:</p>
+<p>Execute&#8230;&#8203;</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mvn versions:display-dependency-updates &gt; /tmp/foo
-grep &quot;\-&gt;&quot; /tmp/foo | /bin/sort -u</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">./verify-isis-release.sh</code></pre>
 </div>
 </div>
 <div class="paragraph">
-<p>Update any of the dependencies that are out-of-date. That said, do note that some dependencies may show up with a new dependency, when in fact the dependency is for an old, badly named version. Also, there may be new dependencies that you do not wish to move to, eg release candidates or milestones.</p>
+<p>... and get yourself a cup of coffee.</p>
+</div>
+</div>
+</div>
 </div>
+<div class="sect3">
+<h4 id="_cg_committers_verifying-releases_creadur">10.3.4. (Optional) Creadur Tools</h4>
 <div class="paragraph">
-<p>For example, here is a report showing both of these cases:</p>
+<p>The <a href="http://creadur.apache.org">Apache Creadur</a> project exists to provide a set of tools to ensure compliance with Apache&#8217;s licensing standards.</p>
 </div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">[INFO]   asm:asm ..................................... 3.3.1 -&gt; 20041228.180559
-[INFO]   commons-httpclient:commons-httpclient .......... 3.1 -&gt; 3.1-jbossorg-1
-[INFO]   commons-logging:commons-logging ......... 1.1.1 -&gt; 99.0-does-not-exist
-[INFO]   dom4j:dom4j ................................. 1.6.1 -&gt; 20040902.021138
-[INFO]   org.datanucleus:datanucleus-api-jdo ................ 3.1.2 -&gt; 3.2.0-m1
-[INFO]   org.datanucleus:datanucleus-core ................... 3.1.2 -&gt; 3.2.0-m1
-[INFO]   org.datanucleus:datanucleus-jodatime ............... 3.1.1 -&gt; 3.2.0-m1
-[INFO]   org.datanucleus:datanucleus-rdbms .................. 3.1.2 -&gt; 3.2.0-m1
-[INFO]   org.easymock:easymock ................................... 2.5.2 -&gt; 3.1
-[INFO]   org.jboss.resteasy:resteasy-jaxrs ............. 2.3.1.GA -&gt; 3.0-beta-1</code></pre>
+<div class="paragraph">
+<p>The main release auditing tool, <a href="http://creadur.apache.org/rat">Apache RAT</a> is used in the <a href="#_cg_committers_cutting-a-release">release process</a>.</p>
 </div>
+<div class="paragraph">
+<p>Creadur&#8217;s remaining tools - <a href="http://creadur.apache.org/tentacles/">Tentacles</a> and <a href="http://creadur.apache.org/whisker/">Whisker</a> - are to support the verification process.</p>
 </div>
 <div class="paragraph">
-<p>For these artifacts you will need to search <a href="http://search.maven.org">Maven central repo</a> directly yourself to confirm there are no newer dependencies not shown in this list.</p>
+<p>For example, Tentacles generates a report called <code>archives.html</code>. This lists all of the top-level binaires, their <code>LICENSE</code> and <code>NOTICE</code> files and any <code>LICENSE</code> and <code>NOTICE</code> files of any binaries they may contain.</p>
 </div>
+<div class="paragraph">
+<p>Validation of the output at this point is all still manual. Things to check include:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>any binaries that contain no LICENSE and NOTICE files</p>
+</li>
+<li>
+<p>any binaries that contain more than one LICENSE or NOTICE file</p>
+</li>
+</ul>
 </div>
-<div class="sect4">
-<h5 id="_code_cleanup_formatting">Code cleanup / formatting</h5>
 <div class="paragraph">
-<p>Make sure that all source code has been cleaned up and formatted according to the Apache Isis and ASF conventions. Use <a href="resources/Apache-code-style-formatting.xml">this</a> Eclipse template and <a href="resources/isis.importorder">this</a> import order.</p>
+<p>In this report, each binary will have three links listed after its name '(licenses, notices, contents)'</p>
 </div>
 </div>
-<div class="sect4">
-<h5 id="_push_changes">Push changes</h5>
+<div class="sect3">
+<h4 id="_test_the_archetype">10.3.5. Test the archetype</h4>
 <div class="paragraph">
-<p>Finally, push the changes up to origin:</p>
+<p>Assuming that everything builds ok, then test the archetypes (adjust version as necessary):</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">git fetch    # check no new commits on origin/master
-git push</code></pre>
-</div>
+<pre class="CodeRay highlight"><code data-lang="bash">mvn archetype:generate  \
+    -D archetypeGroupId=org.apache.isis.archetype \
+    -D archetypeArtifactId=simpleapp-archetype \
+    -D groupId=com.mycompany \
+    -D artifactId=myapp \
+    -D version=1.0-SNAPSHOT \
+    -B \
+    -o \
+    -D archetypeVersion=1.8.0   # adjust version as necessary
+
+cd myapp
+mvn clean install -o
+mvn -P self-host antrun:run</code></pre>
 </div>
 </div>
+<div class="paragraph">
+<p>If it runs up ok, then it&#8217;s time to <a href="#_cg_committers_verifying-releases">vote</a>!</p>
 </div>
 </div>
-<div class="sect2">
-<h3 id="_cg_committers_verifying-releases">10.3. Verifying a Release</h3>
+<div class="sect3">
+<h4 id="_casting_a_vote">10.3.6. Casting a Vote</h4>
 <div class="paragraph">
-<p>Whenever a committer announces a vote on a release on the <a href="../support.html">dev mailing list</a>, it is the responsibility of the project&#8217;s PMC to cast their vote on the release. Anyone else can also vote, but only members of the Apache Isis PMC&#8217;s vote are binding.</p>
+<p>When you have made the above checks (and any other checks you think may be relevant), cast your vote by replying to the email thread on the mailing list.</p>
 </div>
 <div class="paragraph">
-<p>This page provides some guidance on what a voter is expected to verify before casting their vote.</p>
+<p>If you are casting <code>-1</code>, please provide details of the problem(s) you have found.</p>
+</div>
+</div>
 </div>
+<div class="sect2">
+<h3 id="_cg_committers_post-release-successful">10.4. Post Release (Successful)</h3>
 <div class="paragraph">
-<p>Per this <a href="http://www.apache.org/dev/release.html">ASF documentation</a>, the legal requirements for an ASF release are:</p>
+<p>The release process consists of:</p>
 </div>
 <div class="ulist">
 <ul>
 <li>
-<p>a source zip file + corresponding signature (signed by the release manager, which is in the ASF web of trust and in our KEYS file)</p>
+<p>the release manager cutting the release (documented <a href="#_cg_committers_cutting-a-release">here</a>)</p>
 </li>
 <li>
-<p>all source files have the Apache license (this is ensured by the running of the rat plugin prior to release; you could run it on the unzipped source)</p>
+<p>members of the Apache Isis PMC voting on the release (documented <a href="#_cg_committers_verifying-releases">here</a>)</p>
 </li>
 <li>
-<p>all dependencies are appropriately licensed; see the <code>DEPENDENCIES</code> file which is automatically generated from the POMs plus the supplemental-models.xml file</p>
+<p>the release manager performing post-release tasks (documented below for if vote was successful, else <a href="#_cg_committers_post-release-unsuccessful">here if unsuccessful</a>).</p>
 </li>
 </ul>
 </div>
 <div class="paragraph">
-<p>Note that the binaries are <em>not</em> an ASF release, they merely exist on the Maven central repo as a convenience. That said, you might also want to verify the release by pulling the binaries from the Maven staging repository. Details of how to do this are also documented below.</p>
+<p>For a vote to succeed, there must be +3 votes from PMC members, and the vote must have been open at least 72 hours.  If there are not +3 votes after this time then it is perfectly permissible to keep the vote open longer.</p>
+</div>
+<div class="paragraph">
+<p>This section describes the steps to perform if the vote has been successful.</p>
 </div>
 <div class="sect3">
-<h4 id="_prerequisites_2">10.3.1. Prerequisites</h4>
+<h4 id="_inform_dev_ml">10.4.1. Inform dev ML</h4>
 <div class="paragraph">
-<p>To verify the source ZIP files, you will need to have imported the public keys used for signing Apache Isis releases. These can be downloaded from the root of the Apache Isis source tree.</p>
+<p>Post the results to the <code>dev@isis.a.o</code> mailing list:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">[RESULT] [VOTE] Apache Isis Core release 1.9.0</code></pre>
+</div>
 </div>
 <div class="paragraph">
-<p>Since the Apache Isis source is mirrored on github.com, you can just use:</p>
+<p>using the body (alter last line as appropriate):</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">curl http://www.apache.org/dist/isis/KEYS &gt; /tmp/KEYS
-gpg --import /tmp/KEYS</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">The vote has completed with the following result :
+
+  +1 (binding): &lt;i&gt;list of names&lt;/i&gt;
+  +1 (non binding): &lt;i&gt;list of names&lt;/i&gt;
+
+  -1 (binding): &lt;i&gt;list of names&lt;/i&gt;
+  -1 (non binding): &lt;i&gt;list of names&lt;/i&gt;
+
+The vote is SUCCESSFUL.</code></pre>
 </div>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_verifying_source_artifacts">10.3.2. Verifying source artifacts</h4>
-<div class="admonitionblock note">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-note" title="Note"></i>
-</td>
-<td class="content">
+<h4 id="_update_tags">10.4.2. Update tags</h4>
 <div class="paragraph">
-<p>Note: to automate this next stage, there is also a <a href="#_cg_committers_verifying-releases-using-a-script">script</a> available; but read what follows first before using the script.</p>
-</div>
-</td>
-</tr>
-</table>
+<p>Replace the <code>-RCn</code> tag with another without the qualifier.</p>
 </div>
 <div class="paragraph">
-<p>Download both the ZIP and .ASC files from the location specified in the voting email. To verify that the signature is correct, use:</p>
+<p>You can do this using the <code>scripts/promoterctag.sh</code> script; for example:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">gpg --verify isis-x.y.z.zip.asc isis-x.y.z.zip</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">sh scripts/promoterctag isis-1.9.0 RC1
+sh scripts/promoterctag simpleapp-archetype-1.9.0 RC1</code></pre>
 </div>
 </div>
+<div class="paragraph">
+<p>Then, continue onto the next section for the steps to promote and announce the release.</p>
+</div>
 </div>
 <div class="sect3">
-<h4 id="_building_source_artifacts">10.3.3. Building source artifacts</h4>
+<h4 id="_release_to_maven_central">10.4.3. Release to Maven Central</h4>
 <div class="paragraph">
-<p>Assuming the ZIP file verifies, it should be unpacked, and then the artifact built from source.</p>
+<p>From the Nexus pages, select the staging repository and select 'release' from the top menu.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<a class="image" href="images/release-process/nexus-release-1.png"><img src="images/release-process/nexus-release-1.png" alt="nexus release 1" width="600px"></a>
+</div>
 </div>
 <div class="paragraph">
-<p>First, delete all Isis artifacts from your local Maven repo:</p>
+<p>This moves the release artifacts into an Apache releases repository; from there they will be automatically moved to the Maven repository.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_release_source_zip">10.4.4. Release Source Zip</h4>
+<div class="paragraph">
+<p>As described in link:the <a href="http://www.apache.org/dev/release-publishing.html#distribution_dist">Apache documentation</a>, each Apache TLP has a <code>release/TLP-name</code> directory in the distribution Subversion repository at <a href="https://dist.apache.org/repos/dist">https://dist.apache.org/repos/dist</a>. Once a release vote passes, the release manager should <code>svn add</code> the artifacts (plus signature and hash files) into this location. The release is then automatically pushed to <a href="http://www.apache.org/dist/">http://www.apache.org/dist/</a> by <code>svnpubsub</code>. Only the most recent release of each supported release line should be contained here, old versions should be deleted.</p>
+</div>
+<div class="paragraph">
+<p>Each project is responsible for the structure of its directory. The directory structure of Apache Isis reflects the directory structure in our git source code repo:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">rm -rf ~/.m2/repository/org/apache/isis</code></pre>
+<pre class="CodeRay highlight"><code>isis/
+  core/
+  example/
+    archetype/
+      simpleapp/</code></pre>
 </div>
 </div>
 <div class="paragraph">
-<p>To build Apache Isis core, first download any dependencies:</p>
+<p>If necessary, checkout this directory structure:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code>mvn dependency:go-offline</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">svn co https://dist.apache.org/repos/dist/release/isis isis-dist</code></pre>
 </div>
 </div>
 <div class="paragraph">
-<p>Check that no Isis artifacts have yet been downloaded, ie there is no <code>~/.m2/org/repository/org/apache/isis</code> directory. If there are, it could indicate that the release being verified incorrectly references previous versions of Apache Isis core.</p>
+<p>Next, add the new release into the appropriate directory, and delete any previous release. You can use <a href="upd_sh">the upd.sh script</a> to help; this downloads the artefacts from the Nexus release repository, adds the artefacts to subsversion and deletes the previous version.</p>
 </div>
 <div class="paragraph">
-<p>Assuming all is ok, build using the <code>-o</code> offline flag:</p>
+<p>At the end, commit the changes:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code>mvn clean install -o</code></pre>
+<pre class="CodeRay highlight"><code>svn commit -m "publishing isis source releases to dist.apache.org"</code></pre>
+</div>
 </div>
 </div>
+<div class="sect3">
+<h4 id="_update_jira">10.4.5. Update JIRA</h4>
+<div class="sect4">
+<h5 id="_generate_release_notes">Generate Release Notes</h5>
 <div class="paragraph">
-<p>Confirm that the versions of the Isis artifacts now cached in your local repository are correct.</p>
+<p>From the root directory, generate the release notes for the current release, in Asciidoc format; eg:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">sh scripts/jira-release-notes.sh ISIS 1.9.0 &gt; /tmp/1</code></pre>
+</div>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_close_tickets">Close tickets</h5>
+<div class="paragraph">
+<p>Close all JIRA tickets for the release, or moved to future releases if not yet addressed. Any tickets that were partially implemented should be closed, and new tickets created for the functionality on the ticket not yet implemented.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_mark_the_version_as_released">Mark the version as released</h5>
+<div class="paragraph">
+<p>In JIRA, go to the administration section for the Apache Isis project and update the versions as released.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_create_new_jira">Create new JIRA</h5>
+<div class="paragraph">
+<p>Create a new JIRA ticket as a catch-all for the <em>next</em> release.</p>
+</div>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_verifying_binary_artifacts">10.3.4. Verifying binary artifacts</h4>
+<h4 id="_update_website">10.4.6. Update website</h4>
 <div class="paragraph">
-<p>If you wish, you can verify the binary releases by configuring your local Maven install to point to the Maven Maven staging repository (or repositories) and then using them, eg to run the <a href="../intro/getting-started/simpleapp-archetype.html">simpleapp archetype</a> and running the resultant app.</p>
+<p>Update the Apache Isis (asciidoc) website:</p>
 </div>
+<div class="ulist">
+<ul>
+<li>
+<p>Paste in the JIRA-generated release notes generated above, adding to top of <code>adocs/documentation/src/main/asciidoc/release-notes.adoc</code>.  Also add a summary line for the release.</p>
+</li>
+<li>
+<p>Search for any <code>-SNAPSHOT</code> suffices, and remove</p>
+</li>
+<li>
+<p>Update the <a href="../download.html">download page</a> with a link to the source release zip file (under <a href="https://dist.apache.org/repos/dist/release/isis">https://dist.apache.org/repos/dist/release/isis</a>)</p>
+</li>
+<li>
+<p>update the <a href="../doap_isis.rdf">DOAP RDF</a> file (which provides a machine-parseable description of the project) should also be updated with details of the new release. Validate using the <a href="http://www.w3.org/RDF/Validator/">W3C RDF Validator</a> service.<br></p>
 <div class="paragraph">
-<p>Configuring your local Maven install amounts to updating the <code>~/.m2/settings.xml</code> file:</p>
+<p>For more information on DOAP files, see these <a href="http://projects.apache.org/doap.html">Apache policy docs</a>.</p>
+</div>
+</li>
+<li>
+<p>Update the <a href="https://git-wip-us.apache.org/repos/asf/isis/repo?p=isis.git;a=blob_plain;f=STATUS;hb=HEAD">STATUS</a> file (in root of Apache Isis' source) should be updated with details of the new release.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Don&#8217;t forget to commit the <code>.adoc</code> changes and publish to the isis-site repo.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_announce_the_release">10.4.7. Announce the release</h4>
+<div class="paragraph">
+<p>Announce the release to <a href="mailto:users@isis.apache.org">users mailing list</a>.</p>
+</div>
+<div class="paragraph">
+<p>For example, for a release of Apache Isis Core, use the following subject:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;profiles&gt;</span>
-    <span class="tag">&lt;profile&gt;</span>
-        <span class="tag">&lt;id&gt;</span>verify-isis<span class="tag">&lt;/id&gt;</span>
-        <span class="tag">&lt;repositories&gt;</span>
-            <span class="tag">&lt;repository&gt;</span>
-                <span class="tag">&lt;id&gt;</span>isis-core-staging<span class="tag">&lt;/id&gt;</span>
-                <span class="tag">&lt;name&gt;</span>Isis Core Staging<span class="tag">&lt;/name&gt;</span>
-                <span class="tag">&lt;releases&gt;</span>
-                    <span class="tag">&lt;enabled&gt;</span>true<span class="tag">&lt;/enabled&gt;</span>
-                    <span class="tag">&lt;updatePolicy&gt;</span>always<span class="tag">&lt;/updatePolicy&gt;</span>
-                    <span class="tag">&lt;checksumPolicy&gt;</span>warn<span class="tag">&lt;/checksumPolicy&gt;</span>
-                <span class="tag">&lt;/releases&gt;</span>
-                <span class="tag">&lt;url&gt;</span>http://repository.apache.org/content/repositories/orgapacheisis-10xx<span class="tag">&lt;/url&gt;</span>
-                <span class="tag">&lt;layout&gt;</span>default<span class="tag">&lt;/layout&gt;</span>
-            <span class="tag">&lt;/repository&gt;</span>
-            ...
-        <span class="tag">&lt;/repositories&gt;</span>
-    <span class="tag">&lt;/profile&gt;</span>
-    ...
-<span class="tag">&lt;/profiles&gt;</span>
-<span class="tag">&lt;activeProfiles&gt;</span>
-    <span class="tag">&lt;activeProfile&gt;</span>verify-isis<span class="tag">&lt;/activeProfile&gt;</span>
-    ...
-<span class="tag">&lt;/activeProfiles&gt;</span></code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">[ANN] Apache Isis version 1.9.0 Released</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>And use the following body (summarizing the main points as required):</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code>The Apache Isis team is pleased to announce the release of:
+* Apache Isis Core version 1.9.0
+* SimpleApp Archetype 1.9.0
+
+New features in this release include:
+- ...
+
+Full release notes are available on the Apache Isis website at [1].
+
+Note that:
+* ...
+
+You can access this release directly from the Maven central repo [2],
+or download the release and build it from source [3].
+
+Enjoy!
+
+--The Apache Isis team
+
+[1] http://isis.apache.org/core/release-notes/isis-1.9.0.html
+[2] http://search.maven.org
+[3] http://isis.apache.org/download.html</code></pre>
 </div>
 </div>
-<div class="paragraph">
-<p>where the repository URL is as provided in the VOTE email. If there is more than one repository (as is sometimes the case if multiple components have been released), then repeat the &lt;repository&gt; section for each.</p>
 </div>
+<div class="sect3">
+<h4 id="_blog_post">10.4.8. Blog post</h4>
 <div class="paragraph">
-<p>Once the vote has completed, the staging repositories will be removed and so you should deactive the profile (comment out the <code>&lt;activeProfile&gt;</code> element). If you forget to deactive the profile, there should be no adverse effects; Maven will just spend unnecessary cycles attempting to hit a non-existent repo.</p>
+<p>Finally, <a href="https://blogs.apache.org/roller-ui/login.rol">log onto</a> the <a href="http://blogs.apache.org/isis/">Apache blog</a> and create a new post. Copy-n-paste the above mailing list announcement should suffice.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_using_the_creadur_tools">10.3.5. Using the Creadur Tools</h4>
+<h4 id="_merge_in_release_branch">10.4.9. Merge in release branch</h4>
 <div class="paragraph">
-<p>The <a href="http://creadur.apache.org">Apache Creadur</a> project exists to provide a set of tools to ensure compliance with Apache&#8217;s licensing standards. The main release auditing tool, <a href="http://creadur.apache.org/rat">Apache RAT</a>, is used in the preparation of the release (as documented <a href="release-process.html">here</a>). Creadur&#8217;s remaining tools are to support the verification process.</p>
+<p>Because we release from a branch, the changes made in the branch (changes to <code>pom.xml</code> made by the <code>maven-release-plugin</code>, or any manual edits) should be merged back from the release branch back into the <code>master</code> branch:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">git checkout master                   # update master with latest
+git pull
+git merge isis-1.9.0                  # merge branch onto master
+git branch -d isis-1.9.0              # branch no longer needed
+git push origin --delete isis-1.9.0   # remote branch no longer needed</code></pre>
 </div>
-<div class="paragraph">
-<p>At the time of writing, these additional tools are quite young and haven&#8217;t been formally released; so to use them will take a little bit of work. See <a href="verifying-releases-using-creadur-tools.html">here</a> for more details.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_casting_a_vote">10.3.6. Casting a Vote</h4>
+<h4 id="_tidy_up_code">10.4.10. Tidy up code</h4>
 <div class="paragraph">
-<p>When you have made the above checks (and any other checks you think may be relevant), cast your vote by replying to the email thread on the mailing list. If you are casting <code>-1</code>, please provide details of the problem(s) you have found.</p>
-</div>
+<p>With the release complete, now is a good time to bump versions of dependencies (so that there is a full release cycle to identify any possible issues).</p>
 </div>
+<div class="paragraph">
+<p>You will probably want to create a new JIRA ticket for these updates (or if minor then use the "catch-all" JIRA ticket raised earlier for the next release).</p>
 </div>
-<div class="sect2">
-<h3 id="_cg_committers_verify-releases-using-a-script">10.4. Verifying a Release (scripted)</h3>
+<div class="sect4">
+<h5 id="_update_parent_of_core">Update parent of Core</h5>
 <div class="paragraph">
-<p>To save some time in verifying an Apache Isis release we&#8217;ve assembled a script to automate the process. The script is tested on Mac OSX and Linux. Windows users can use Cygwin or <a href="http://msysgit.github.io/">msysgit</a>.</p>
+<p>Check (via <a href="http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache%22%20a%3A%22apache%22">search.maven.org</a>) whether there is a newer version of the Apache parent <code>org.apache:apache</code>.</p>
 </div>
 <div class="paragraph">
-<p>It&#8217;s <em>recommended</em> that you start this process in an empty directory:</p>
+<p>If there is, update the <code>&lt;version&gt;</code> in the <code>&lt;parent&gt;</code> element in the parent POM to match the newer version:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mkdir ~/verify-isis-release
-cd ~/verify-isis-release</code></pre>
+<pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;parent&gt;</span>
+    <span class="tag">&lt;groupId&gt;</span>org.apache<span class="tag">&lt;/groupId&gt;</span>
+    <span class="tag">&lt;artifactId&gt;</span>apache<span class="tag">&lt;/artifactId&gt;</span>
+    <span class="tag">&lt;version&gt;</span>NN<span class="tag">&lt;/version&gt;</span>
+    <span class="tag">&lt;relativePath</span> <span class="tag">/&gt;</span>
+<span class="tag">&lt;/parent&gt;</span></code></pre>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_copy_script_to_local_machine">10.4.1. Copy script to local machine</h4>
 <div class="paragraph">
-<p>The script could be enhanced in many ways, feel free to do so! Copy (or <a href="resources/release-process/verify-isis-release.sh">download</a>) the <code>verify-isis-release.sh</code> script below:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">#!/bin/bash
-# Instructions:
-# -Create an empty directory
-# -Put a .txt file in it containing a list of all the urls of the zip files
-# -Run this script
-# TODO: enhance this script so it will stop when something is broken
-_download(){
-    for fil in `cat *.txt`
-    do
-       echo 'Downloading '$fil
-       curl  -L -O $fil
-       curl  -L -O $fil.asc
-    done
-}
-_verify(){
-    for zip in *.zip
-    do
-       echo 'Verifying '$zip
-       gpg --verify $zip.asc $zip
-    done
-}
-_unpack(){
-    echo 'Unpacking '
-    unzip -q '*.zip'
-}
-_build(){
-    echo 'Removing Apache Isis from local repo '$module
-    rm -rf ~/.m2/repository/org/apache/isis
-    COUNTER=0
-    for module in ./*/
-    do
-       COUNTER=$[COUNTER+1]
-       if [ $COUNTER -eq 1 ]
-       then
-         cd $module
-         echo 'Building Core '$module
-         mvn clean install -o
-         cd ..
-       else
-         cd $module
-         echo 'Building Module '$module
-         mvn clean install
-         cd ..
-       fi
-    done
-}
-# The work starts here
-_download
-_verify
-_unpack
-_build</code></pre>
+<p>where <code>NN</code> is the updated version number.</p>
 </div>
 </div>
+<div class="sect4">
+<h5 id="_update_plugin_versions">Update plugin versions</h5>
 <div class="paragraph">
-<p>Make sure the script is executable:</p>
+<p>The <code>maven-versions-plugin</code> should be used to determine if there are newer versions of any of the plugins used to build Apache Isis. Since this goes off to the internet, it may take a minute or two to run:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code>chmod +x verify-isis-release.sh</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">mvn versions:display-plugin-updates &gt; /tmp/foo
+grep &quot;\-&gt;&quot; /tmp/foo | /bin/sort -u</code></pre>
+</div>
 </div>
+<div class="paragraph">
+<p>Review the generated output and make updates as you see fit. (However, if updating, please check by searching for known issues with newer versions).</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_create_an_input_file">10.4.2. Create an input file</h4>
+<div class="sect4">
+<h5 id="_update_dependency_versions">Update dependency versions</h5>
 <div class="paragraph">
-<p>The input file is a plain <code>.txt</code> file containing all urls to the packages to be verified. Here&#8217;s a sample of the release of Apache Isis 1.8.0:</p>
+<p>The <code>maven-versions-plugin</code> should be used to determine if there are newer versions of any of Isis' dependencies. Since this goes off to the internet, it may take a minute or two to run:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code>https://repository.apache.org/content/repositories/orgapacheisis-063/org/apache/isis/core/isis/1.8.0/isis-1.8.0-source-release.zip
-https://repository.apache.org/content/repositories/orgapacheisis-065/org/apache/isis/archetype/simpleapp-archetype/1.8.0/simpleapp-archetype-1.8.0-source-release.zip</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">mvn versions:display-dependency-updates &gt; /tmp/foo
+grep &quot;\-&gt;&quot; /tmp/foo | /bin/sort -u</code></pre>
 </div>
 </div>
 <div class="paragraph">
-<p>The actual list of packages to be verified will be provided through the mailing list.</p>
+<p>Update any of the dependencies that are out-of-date. That said, do note that some dependencies may show up with a new dependency, when in fact the dependency is for an old, badly named version. Also, there may be new dependencies that you do not wish to move to, eg release candidates or milestones.</p>
 </div>
+<div class="paragraph">
+<p>For example, here is a report showing both of these cases:</p>
 </div>
-<div class="sect3">
-<h4 id="_clean_out_local_maven_repo">10.4.3. Clean out local Maven repo</h4>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">rm -rf ~/.m2/repository/org/apache/isis</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">[INFO]   asm:asm ..................................... 3.3.1 -&gt; 20041228.180559
+[INFO]   commons-httpclient:commons-httpclient .......... 3.1 -&gt; 3.1-jbossorg-1
+[INFO]   commons-logging:commons-logging ......... 1.1.1 -&gt; 99.0-does-not-exist
+[INFO]   dom4j:dom4j ................................. 1.6.1 -&gt; 20040902.021138
+[INFO]   org.datanucleus:datanucleus-api-jdo ................ 3.1.2 -&gt; 3.2.0-m1
+[INFO]   org.datanucleus:datanucleus-core ................... 3.1.2 -&gt; 3.2.0-m1
+[INFO]   org.datanucleus:datanucleus-jodatime ............... 3.1.1 -&gt; 3.2.0-m1
+[INFO]   org.datanucleus:datanucleus-rdbms .................. 3.1.2 -&gt; 3.2.0-m1
+[INFO]   org.easymock:easymock ................................... 2.5.2 -&gt; 3.1
+[INFO]   org.jboss.resteasy:resteasy-jaxrs ............. 2.3.1.GA -&gt; 3.0-beta-1</code></pre>
+</div>
 </div>
+<div class="paragraph">
+<p>For these artifacts you will need to search <a href="http://search.maven.org">Maven central repo</a> directly yourself to confirm there are no newer dependencies not shown in this list.</p>
 </div>
 </div>
-<div class="sect3">
-<h4 id="_execute_the_script">10.4.4. Execute the script</h4>
+<div class="sect4">
+<h5 id="_code_cleanup_formatting">Code cleanup / formatting</h5>
 <div class="paragraph">
-<p>Execute&#8230;&#8203;</p>
+<p>While we&#8217;re at it, this is also a good time to make source code has been cleaned up and formatted according to the Apache Isis and ASF conventions. Use <a href="resources/Apache-code-style-formatting.xml">this</a> Eclipse template and <a href="resources/isis.importorder">this</a> import order.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_push_changes">Push changes</h5>
+<div class="paragraph">
+<p>Finally, push the changes up to origin:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">./verify-isis-release.sh</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">git fetch    # check no new commits on origin/master
+git push</code></pre>
 </div>
 </div>
-<div class="paragraph">
-<p>…and get yourself a cup of coffee.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_test_the_archetype">10.4.5. Test the archetype</h4>
+<h4 id="_update_isis_addons">10.4.11. Update Isis Addons</h4>
 <div class="paragraph">
-<p>Assuming that everything builds ok, then test the archetypes (adjust version as necessary):</p>
+<p>Once the Apache Isis release is available, all of the (non-ASF) <a href="http://isisaddons.org">Isis Addons</a> should also be released.</p>
 </div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mvn archetype:generate  \
-    -D archetypeGroupId=org.apache.isis.archetype \
-    -D archetypeArtifactId=simpleapp-archetype \
-    -D groupId=com.mycompany \
-    -D artifactId=myapp \
-    -D version=1.0-SNAPSHOT \
-    -B \
-    -o \
-    -D archetypeVersion=1.8.0   # adjust version as necessary
-
-cd myapp
-mvn clean install -o
-mvn -P self-host antrun:run</code></pre>
+<div class="paragraph">
+<p>For each add-on:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>update its dependency on Apache Isis to reference the newly released version</p>
+<div class="ulist">
+<ul>
+<li>
+<p>all the addons define their dependency in the <code>&lt;isis.version&gt;</code> property, so search for this string across all <code>pom.xml</code> files</p>
+</li>
+</ul>
 </div>
+</li>
+<li>
+<p>use the <code>release.sh</code> script (that each provides) to release.</p>
+</li>
+</ul>
 </div>
 <div class="paragraph">
-<p>If it runs up ok, then it&#8217;s time to <a href="#_cg_committers_verifying-releases">vote</a>!</p>
+<p>You can use this <a href="https://gist.github.com/danhaywood/3129b688be3628322c01">gist</a> to invoke <code>release.sh</code> across all (or selected) addons.</p>
 </div>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_cg_committers_verifying-releases-using-creadur-tools">10.5. Verifying using Creadur</h3>
+<h3 id="_cg_committers_post-release-unsuccessful">10.5. Post Release (Unsuccessful)</h3>
+<div class="paragraph">
+<p>The release process consists of:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>the release manager cutting the release (documented <a href="#_cg_committers_cutting-a-release">here</a>)</p>
+</li>
+<li>
+<p>members of the Apache Isis PMC voting on the release (documented <a href="#_cg_committers_verifying-releases">here</a>)</p>
+</li>
+<li>
+<p>the release manager performing post-release tasks (documented below for if vote was unsuccessful, else <a href="#_cg_committers_post-release-successful">here if successful</a>).</p>
+</li>
+</ul>
+</div>
 <div class="paragraph">
-<p>The <a href="http://creadur.apache.org">Apache Creadur</a> project exists to provide a set of tools to ensure compliance with Apache&#8217;s licensing standards. The main release auditing tool, <a href="http://creadur.apache.org/rat">Apache RAT</a>, is used in the preparation of the release (as documented <a href="release-process.html">here</a>). Creadur&#8217;s remaining tools are to support the verification process.</p>
+<p>If the vote did not succeed (did not achieve +3 votes after 72 hours and/or is unlikely to do so), then the vote should be closed and the following steps performed.</p>
 </div>
 <div class="paragraph">
-<p>At the time of writing, these additional tools are quite young and haven&#8217;t been formally released; so to use them will take a little bit of work. In the future we expect these tools to mature and ease the effort required to verify releases.</p>
+<p>Note that a release manager may also decide to cancel a vote before 72 hours has elapsed (for example if an error is quicly discovered).</p>
 </div>
 <div class="sect3">
-<h4 id="_using_the_tentacles_tool">10.5.1. Using the Tentacles tool</h4>
+<h4 id="_inform_dev_ml_2">10.5.1. Inform dev ML</h4>
+<div class="paragraph">
+<p>Post the results to the <code>dev@isis.a.o</code> mailing list.</p>
+</div>
 <div class="paragraph">
-<p>At the time of writing the Tentacles tool hasn&#8217;t been released, so you&#8217;ll need to build from source:</p>
+<p>For example, use the following subject for a vote on Apache Isis Core:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">mkdir /tmp/verify
-cd /tmp/verify
-svn co http://svn.apache.org/repos/asf/creadur/tentacles/trunk creadur-tentacles
-cd creadur-tentacles
-mvn clean install</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">[RESULT] [VOTE] Apache Isis Core release 1.9.0</code></pre>
 </div>
 </div>
 <div class="paragraph">
-<p>You can pull down a release, using a command such as:</p>
+<p>using the body (alter last line as appropriate):</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">cd /tmp/verify
-java -jar creadur-tentacles/target/apache-tentacles-0.1-SNAPSHOT.jar https://repository.apache.org/content/repositories/orgapacheisis-NNN/</code></pre>
-</div>
+<pre class="CodeRay highlight"><code data-lang="bash">The vote has completed with the following result :
+
+  +1 (binding): &lt;i&gt;list of names&lt;/i&gt;
+  +1 (non binding): &lt;i&gt;list of names&lt;/i&gt;
+
+  -1 (binding): &lt;i&gt;list of names&lt;/i&gt;
+  -1 (non binding): &lt;i&gt;list of names&lt;/i&gt;
+
+The vote is UNSUCCESSFUL.</code></pre>
 </div>
-<div class="paragraph">
-<p>where <code>NNN</code> is the repository that has the staged artifacts requiring verification.</p>
 </div>
-<div class="paragraph">
-<p>As per the <a href="http://creadur.apache.org/tentacles/">tentacles documentation</a>, this command generates a report called <code>archives.html</code> (in the newly created <code>orgapacheisis-NNN</code> directory). This lists all of the top-level binaires, their <code>LICENSE</code> and <code>NOTICE</code> files and any <code>LICENSE</code> and <code>NOTICE</code> files of any binaries they may contain.</p>
 </div>
+<div class="sect3">
+<h4 id="_tidy_up_branches">10.5.2. Tidy up branches</h4>
 <div class="paragraph">
-<p>Validation of the output at this point is all still manual. Things to check for include:</p>
+<p>Tidy up remote branches in the git repo:</p>
 </div>
 <div class="ulist">
 <ul>
 <li>
-<p>any binaries that contain no LICENSE and NOTICE files</p>
+<p>delete the remote branch, for example:<br></p>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">git push origin –delete isis-1.9.0 # $ISISART-$SISREL</code></pre>
+</div>
+</div>
 </li>
 <li>
-<p>any binaries that contain more than one LICENSE or NOTICE file</p>
+<p>delete the remote origin server&#8217;s tag, for example:<br></p>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">git push origin –delete refs/tags/isis-1.9.0-RC1</code></pre>
+</div>
+</div>
+</li>
+<li>
+<p>delete the tag that was created locally, for example:<br></p>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">git tag -d isis-1.9.0 # $ISISART-$SISREL</code></pre>
+</div>
+</div>
 </li>
 </ul>
 </div>
+</div>
+<div class="sect3">
+<h4 id="_tidy_up_the_nexus_repo">10.5.3. Tidy up the Nexus repo</h4>
 <div class="paragraph">
-<p>In this report, each binary will have three links listed after its name '(licenses, notices, contents)'</p>
+<p>Drop staging repositories:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>drop the staging repository in <a href="http://repository.apache.org">Nexus</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_reset">10.5.4. Reset</h4>
+<div class="paragraph">
+<p>Finally, rewind the release branch to prior to the previous release candidate, and continue from there.</p>
 </div>
 </div>
 </div>
@@ -7106,57 +7240,59 @@ xxx<br>
 <li><a href="#_start_voting_thread_on_a_href_mailto_e_p_e_g_e_p_e_g_a">Start voting thread on <a href="mailto:&#100;e&#118;&#x40;&#x69;&#x73;&#x69;&#115;&#x2e;&#x61;p&#97;&#x63;&#104;e&#46;&#111;&#114;g">&#100;e&#118;&#x40;&#x69;&#x73;&#x69;&#115;&#x2e;&#x61;p&#97;&#x63;&#104;e&#46;&#111;&#114;g</a></a></li>
 </ul>
 </li>
-<li><a href="#_after_the_vote">10.2.8. After the vote</a>
+</ul>
+</li>
+<li><a href="#_cg_committers_verifying-releases">10.3. Verifying a Release</a>
+<ul class="sectlevel3">
+<li><a href="#_background">10.3.1. Background</a></li>
+<li><a href="#_prerequisites_2">10.3.2. Prerequisites</a></li>
+<li><a href="#_verifying_source_artifacts">10.3.3. Verifying source artifacts</a>
 <ul class="sectlevel4">
-<li><a href="#_for_a_successful_vote">For a successful vote</a></li>
-<li><a href="#_for_an_unsuccessful_vote">For an unsuccessful vote</a></li>
+<li><a href="#_cg_committers_verifying-releases_manual-procedure">Manual procedure</a></li>
+<li><a href="#_cg_committers_verifying-releases_automated-procedure">Automated procedure</a></li>
 </ul>
 </li>
-<li><a href="#_release_to_maven_central">10.2.9. Release to Maven Central</a></li>
-<li><a href="#_release_source_zip">10.2.10. Release Source Zip</a></li>
-<li><a href="#_update_jira">10.2.11. Update JIRA</a>
+<li><a href="#_cg_committers_verifying-releases_creadur">10.3.4. (Optional) Creadur Tools</a></li>
+<li><a href="#_test_the_archetype">10.3.5. Test the archetype</a></li>
+<li><a href="#_casting_a_vote">10.3.6. Casting a Vote</a></li>
+</ul>
+</li>
+<li><a href="#_cg_committers_post-release-successful">10.4. Post Release (Successful)</a>
+<ul class="sectlevel3">
+<li><a href="#_inform_dev_ml">10.4.1. Inform dev ML</a></li>
+<li><a href="#_update_tags">10.4.2. Update tags</a></li>
+<li><a href="#_release_to_maven_central">10.4.3. Release to Maven Central</a></li>
+<li><a href="#_release_source_zip">10.4.4. Release Source Zip</a></li>
+<li><a href="#_update_jira">10.4.5. Update JIRA</a>
 <ul class="sectlevel4">
 <li><a href="#_generate_release_notes">Generate Release Notes</a></li>
 <li><a href="#_close_tickets">Close tickets</a></li>
 <li><a href="#_mark_the_version_as_released">Mark the version as released</a></li>
+<li><a href="#_create_new_jira">Create new JIRA</a></li>
 </ul>
 </li>
-<li><a href="#_update_website">10.2.12. Update website</a></li>
-<li><a href="#_announce_the_release">10.2.13. Announce the release</a></li>
-<li><a href="#_blog_post">10.2.14. Blog post</a></li>
-<li><a href="#_prepare_for_next_release">10.2.15. Prepare for next release</a>
+<li><a href="#_update_website">10.4.6. Update website</a></li>
+<li><a href="#_announce_the_release">10.4.7. Announce the release</a></li>
+<li><a href="#_blog_post">10.4.8. Blog post</a></li>
+<li><a href="#_merge_in_release_branch">10.4.9. Merge in release branch</a></li>
+<li><a href="#_tidy_up_code">10.4.10. Tidy up code</a>
 <ul class="sectlevel4">
-<li><a href="#_merge_into_code_master_code">Merge into <code>master</code></a></li>
-<li><a href="#_bump_versions">Bump versions</a></li>
+<li><a href="#_update_parent_of_core">Update parent of Core</a></li>
+<li><a href="#_update_plugin_versions">Update plugin versions</a></li>
 <li><a href="#_update_dependency_versions">Update dependency versions</a></li>
 <li><a href="#_code_cleanup_formatting">Code cleanup / formatting</a></li>
 <li><a href="#_push_changes">Push changes</a></li>
 </ul>
 </li>
+<li><a href="#_update_isis_addons">10.4.11. Update Isis Addons</a></li>
 </ul>
 </li>
-<li><a href="#_cg_committers_verifying-releases">10.3. Verifying a Release</a>
-<ul class="sectlevel3">
-<li><a href="#_prerequisites_2">10.3.1. Prerequisites</a></li>
-<li><a href="#_verifying_source_artifacts">10.3.2. Verifying source artifacts</a></li>
-<li><a href="#_building_source_artifacts">10.3.3. Building source artifacts</a></li>
-<li><a href="#_verifying_binary_artifacts">10.3.4. Verifying binary artifacts</a></li>
-<li><a href="#_using_the_creadur_tools">10.3.5. Using the Creadur Tools</a></li>
-<li><a href="#_casting_a_vote">10.3.6. Casting a Vote</a></li>
-</ul>
-</li>
-<li><a href="#_cg_committers_verify-releases-using-a-script">10.4. Verifying a Release (scripted)</a>
-<ul class="sectlevel3">
-<li><a href="#_copy_script_to_local_machine">10.4.1. Copy script to local machine</a></li>
-<li><a href="#_create_an_input_file">10.4.2. Create an input file</a></li>
-<li><a href="#_clean_out_local_maven_repo">10.4.3. Clean out local Maven repo</a></li>
-<li><a href="#_execute_the_script">10.4.4. Execute the script</a></li>
-<li><a href="#_test_the_archetype">10.4.5. Test the archetype</a></li>
-</ul>
-</li>
-<li><a href="#_cg_committers_verifying-releases-using-creadur-tools">10.5. Verifying using Creadur</a>
+<li><a href="#_cg_committers_post-release-unsuccessful">10.5. Post Release (Unsuccessful)</a>
 <ul class="sectlevel3">
-<li><a href="#_using_the_tentacles_tool">10.5.1. Using the Tentacles tool</a></li>
+<li><a href="#_inform_dev_ml_2">10.5.1. Inform dev ML</a></li>
+<li><a href="#_tidy_up_branches">10.5.2. Tidy up branches</a></li>
+<li><a href="#_tidy_up_the_nexus_repo">10.5.3. Tidy up the Nexus repo</a></li>
+<li><a href="#_reset">10.5.4. Reset</a></li>
 </ul>
 </li>
 <li><a href="#_cg_committers_release-process-for-snapshots">10.6. Snapshot Releases</a>