You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by bu...@apache.org on 2015/01/27 20:01:34 UTC

svn commit: r937909 [1/2] - in /websites/staging/slider/trunk/content: ./ developing/index.html developing/releasing.html developing/releasing_process_v1.html

Author: buildbot
Date: Tue Jan 27 19:01:34 2015
New Revision: 937909

Log:
Staging update by buildbot for slider

Added:
    websites/staging/slider/trunk/content/developing/releasing_process_v1.html
Modified:
    websites/staging/slider/trunk/content/   (props changed)
    websites/staging/slider/trunk/content/developing/index.html
    websites/staging/slider/trunk/content/developing/releasing.html

Propchange: websites/staging/slider/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Tue Jan 27 19:01:34 2015
@@ -1 +1 @@
-1652190
+1655105

Modified: websites/staging/slider/trunk/content/developing/index.html
==============================================================================
--- websites/staging/slider/trunk/content/developing/index.html (original)
+++ websites/staging/slider/trunk/content/developing/index.html Tue Jan 27 19:01:34 2015
@@ -194,6 +194,11 @@ Slider</p>
 <li><a href="windows.html">Windows Development and Testing</a></li>
 <li><a href="demo.html">Demo Script</a></li>
 </ul>
+<h2 id="historical-documents">Historical Documents</h2>
+<p>These documents are obsolete; they are retained for reference.</p>
+<ul>
+<li><a href="releasing_process_v1.html">Releasing Process v1</a></li>
+</ul>
   </div>
 
   <div id="footer">

Modified: websites/staging/slider/trunk/content/developing/releasing.html
==============================================================================
--- websites/staging/slider/trunk/content/developing/releasing.html (original)
+++ websites/staging/slider/trunk/content/developing/releasing.html Tue Jan 27 19:01:34 2015
@@ -179,23 +179,18 @@ Latest release: <strong>0.60.0-incubatin
 
 <h1 id="apache-slider-release-process">Apache Slider Release Process</h1>
 <p>Here is our release process.</p>
-<p>The process has two phases.</p>
-<ul>
-<li><a href="#phase1">Phase I</a>: Merge <code>develop</code> branch with <code>master</code> so that you can release from <code>master</code></li>
-<li><a href="#phase2">Phase II</a>: Perform Apache release from <code>master</code></li>
-</ul>
 <h3 id="tooling">Tooling</h3>
 <p>As well as everything needed to build slider, there are some extra requirements
 for releasing:</p>
 <ol>
-<li>Shell: (Currently: Bash)</li>
+<li>Shell: (Currently: Bash; some <code>fish</code> examples too)</li>
 <li><a href="http://danielkummer.github.io/git-flow-cheatsheet/">git flow</a></li>
 <li>OS/X and windows: <a href="http://www.sourcetreeapp.com/">Atlassian SourceTree</a>.
 This can perform the git flow operations, as well as show the state of your
 git graph.</li>
 </ol>
 <h3 id="before-you-begin">Before you begin</h3>
-<p><em>1.</em> Check out the latest version of the develop branch,
+<p>Check out the latest version of the branch to be released,
 run the tests. This should be done on a checked out
 version of the code that is not the one you are developing on
 (ideally, a clean VM), to ensure that you aren't releasing a slightly
@@ -208,23 +203,60 @@ according to the instructions in <a href
 create HBase and Accumulo clusters in the YARN cluster.</p>
 <p><em>Make sure that the integration tests are passing (and not being skipped) before
 starting to make a release</em></p>
-<p><em>2.</em> Check out the latest version of <code>origin/master</code>.</p>
 <p><em>3.</em> Make sure there are no uncommitted files in your local repo. </p>
 <p><em>4.</em> If you are not building against a stable Hadoop release</p>
 <ol>
-<li>Check out the hadoop branch you intend to build and test against —and include in
+<li>Check out the Hadoop branch you intend to build and test against —and include in
      the redistributable artifacts.</li>
 <li>Build it via <code>mvn clean install -DskipTests</code></li>
-<li>Note the git revision number of this build -for documentation.</li>
+<li>Note the git revision number of this build —for documentation.</li>
 <li>Maybe: tag that revision so you can easily revert to it</li>
 </ol>
-<h5 id="profiles">Profiles</h5>
-<p>The slider POMs offer different profiles of hadoop versions to build against. The instructions 
+<p>Unstable Hadoop versions MUST NOT be used for anything declared as a stable
+Slider release.</p>
+<p><em>5.</em> Check ASF headers dependencies</p>
+<p>Ensure the rat check is clean. This rejects files which lack ASF headers</p>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">clean</span> <span class="n">apache</span><span class="o">-</span><span class="nb">rat</span><span class="p">:</span><span class="n">check</span> <span class="o">-</span><span class="n">Prat</span>
+</pre></div>
+
+
+<h3 id="checking-licenses">Checking licenses</h3>
+<p>Maven can check that all dependent artifacts have valid licenses</p>
+<p>For pom-only projects (including the root slider project)</p>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">license</span><span class="p">:</span><span class="n">aggregate</span><span class="o">-</span><span class="n">add</span><span class="o">-</span><span class="n">third</span><span class="o">-</span><span class="n">party</span>  <span class="o">-</span><span class="n">Dlicense</span><span class="p">.</span><span class="n">useMissingFile</span>
+</pre></div>
+
+
+<p>for projects which publish JARs</p>
+<div class="codehilite"><pre> <span class="n">mvn</span> <span class="n">license</span><span class="p">:</span><span class="n">add</span><span class="o">-</span><span class="n">third</span><span class="o">-</span><span class="n">party</span> <span class="o">-</span><span class="n">Dlicense</span><span class="p">.</span><span class="n">useMissingFile</span>
+</pre></div>
+
+
+<p>This generates the metadata for licenses. Dependencies without a license are warned about.
+To fix this, make sure that the (generated or updated) file <code>src/license/THIRD-PARTY.properties</code>
+has an entry for every dependency without a license, declaring what their license is.</p>
+<h3 id="signing-keys">Signing keys</h3>
+<p>Verify your PGP key is provided to Apache. </p>
+<p>Apache verifies that distributions are correctly signed.
+Login to <a href="https://id.apache.org">https://id.apache.org</a> and verify the 
+fingerprint of PGP key used to sign above is provided. (<code>gpg --fingerprint</code>)
+Upload your PGP public key only to <code>/home/$ASF_USER/.pgpkey</code></p>
+<div class="codehilite"><pre><span class="n">scp</span> <span class="n">public</span><span class="o">-</span><span class="n">key</span><span class="p">.</span><span class="n">asc</span> <span class="n">people</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="p">:.</span><span class="n">pgpkey</span>
+</pre></div>
+
+
+<h5 id="note-profiles">Note: Profiles</h5>
+<p>The slider POMs offer different profiles of Hadoop versions to build against. The instructions 
 below do not choose one. If a profile is needed, append it to all the maven commands.</p>
-<p>e.g. <code>mvn clean install -DskipTests -Prelease-2.6</code></p>
-<h2 id="wzxhzdk45wzxhzdk46phase-i"><a name="phase1"></a>Phase - I</h2>
-<p><strong>Step #0:</strong> Sync up with the ASF repo. You do not want to release the wrong
-code.</p>
+<p>e.g. <code>mvn clean install -Prelease-2.6</code></p>
+<h2 id="prepare">Prepare</h2>
+<p>Verify that there's nothing not yet checked in</p>
+<div class="codehilite"><pre><span class="n">git</span> <span class="n">status</span>
+</pre></div>
+
+
+<p>Everything must be checked in at this point.</p>
+<p>Sync up with the ASF repo. You do not want to release the wrong code.</p>
 <div class="codehilite"><pre><span class="n">git</span> <span class="n">checkout</span> <span class="n">develop</span>
 <span class="n">git</span> <span class="n">pull</span> <span class="n">origin</span>
 <span class="n">git</span> <span class="n">push</span> <span class="n">origin</span>
@@ -237,10 +269,9 @@ code.</p>
 </pre></div>
 
 
-<p><strong>Step #2:</strong> Check everything in. Git flow won't let you progress without this.</p>
-<p><strong>Step #4:</strong> Increment those version numbers using <a href="http://mojo.codehaus.org/versions-maven-plugin/">the maven
+<p><strong>Step #4:</strong> If they are not what you want, set the version numbers using <a href="http://mojo.codehaus.org/versions-maven-plugin/">the maven
 versions plugin</a></p>
-<div class="codehilite"><pre><span class="n">export</span> <span class="n">SLIDER_RELEASE</span><span class="p">=</span>0<span class="p">.</span>60<span class="p">.</span>0<span class="o">-</span><span class="n">incubating</span>
+<div class="codehilite"><pre><span class="n">export</span> <span class="n">SLIDER_RELEASE</span><span class="p">=</span>0<span class="p">.</span>60<span class="p">.</span>0<span class="o">-</span><span class="n">incubating</span><span class="o">-</span><span class="n">SNAPSHOT</span>
 
 <span class="n">mvn</span> <span class="n">versions</span><span class="p">:</span><span class="n">set</span> <span class="o">-</span><span class="n">DnewVersion</span><span class="p">=</span>$<span class="n">SLIDER_RELEASE</span>
 </pre></div>
@@ -248,15 +279,14 @@ versions plugin</a></p>
 
 <p><strong>Step #5:</strong> Commit the changed POM files</p>
 <div class="codehilite"><pre><span class="n">git</span> <span class="n">status</span>
-
 <span class="n">git</span> <span class="n">add</span> <span class="o">--</span><span class="n">all</span>
-
 <span class="n">git</span> <span class="n">commit</span> <span class="o">-</span><span class="n">m</span> &quot;$<span class="n">SLIDER_RELEASE_JIRA</span> <span class="n">updating</span> <span class="n">release</span> <span class="n">POMs</span> <span class="k">for</span> $<span class="n">SLIDER_RELEASE</span>&quot;
 </pre></div>
 
 
-<p><strong>Step #3:</strong> Create and check out a release branch</p>
-<div class="codehilite"><pre><span class="n">git</span> <span class="n">checkout</span> <span class="o">-</span><span class="n">b</span> <span class="n">releases</span><span class="o">/</span><span class="n">slider</span><span class="o">-</span>0<span class="p">.</span>60
+<p><strong>Step #3:</strong> Create or check out a release branch</p>
+<div class="codehilite"><pre><span class="n">git</span> <span class="n">checkout</span> <span class="o">-</span><span class="n">b</span> <span class="n">branches</span><span class="o">/</span><span class="n">branch</span><span class="o">-</span>0<span class="p">.</span>6
+<span class="n">git</span> <span class="n">push</span> <span class="n">origin</span> <span class="n">branches</span><span class="o">/</span><span class="n">branch</span><span class="o">-</span>0<span class="p">.</span>6
 </pre></div>
 
 
@@ -267,8 +297,8 @@ versions plugin</a></p>
 
 
 <p>(Make sure the build isn't trying to pull down its JARs from the Apache Staging
-repo)
-Once everything is built- including <code>.tar</code> files, run the tests</p>
+repo)</p>
+<p>Once everything is built- including <code>.tar</code> files, run the tests</p>
 <div class="codehilite"><pre><span class="n">mvn</span> <span class="n">test</span>
 </pre></div>
 
@@ -282,32 +312,9 @@ Once everything is built- including <cod
 <p>It is wise to reset any VMs here, and on live clusters kill all running jobs.
 This stops functional tests failing because the job doesn't get started before
 the tests time out.</p>
-<p>As the test run takes 30-60+ minutes, now is a good time to consider
+<p>As the test run takes 60+ minutes, now is a good time to consider
 finalizing the release notes.</p>
-<p><strong>Step #7:</strong> Build the release package</p>
-<p>Run a clean install, followed by a site build and package goal:</p>
-<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">clean</span> <span class="n">install</span> <span class="o">-</span><span class="n">DskipTests</span>
-<span class="n">mvn</span> <span class="n">site</span><span class="p">:</span><span class="n">site</span> <span class="n">site</span><span class="p">:</span><span class="n">stage</span> <span class="n">package</span> <span class="o">-</span><span class="n">DskipTests</span>
-</pre></div>
-
-
-<p><strong>Step #8:</strong> Validate the tarball</p>
-<p>Look in <code>slider-assembly/target</code> to find the <code>.tar.gz</code> file, and the
-expanded version of it. Inspect that expanded version to make sure that
-everything looks good -and that the versions of all the dependent artifacts
-look good too: there must be no <code>-SNAPSHOT</code> dependencies. [Exception, when the release
-is deliberately made against an unreleased version of Hadoop or other dependencies.
-in that situation the unreleased dependency is expected to consist of <code>-SNAPSHOT</code>
-artifacts]</p>
-<p>tip: the lib dir can be viewed with</p>
-<div class="codehilite"><pre><span class="n">ls</span> <span class="o">-</span><span class="n">l</span> <span class="n">slider</span><span class="o">-</span><span class="n">assembly</span><span class="o">/</span><span class="n">target</span><span class="o">/</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">all</span><span class="o">/</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">/</span><span class="n">lib</span>
-</pre></div>
-
-
-<p><strong>Important</strong> Verify that there is a <code>slider-agent</code> <code>.tar.gz</code> file. The two-phase
-install/site build gets it in there, but doing a single build doesn't always seem 
-to.</p>
-<p><strong>Step #9:</strong> Build the release notes</p>
+<h2 id="build-the-release-notes">Build the release notes</h2>
 <p>Create a a one-line plain text release note for commits and tags
 and a multi-line markdown release note which will be used for artifacts.</p>
 <div class="codehilite"><pre><span class="n">Release</span> <span class="n">against</span> <span class="n">hadoop</span> 2<span class="p">.</span>6<span class="p">.</span>0
@@ -343,19 +350,7 @@ the release number</p>
 
 <p>(assuming that <code>origin</code> maps to <code>https://git-wip-us.apache.org/repos/asf/incubator-slider.git</code>;
  you can check this with <code>git remote -v</code></p>
-<p><strong>Step #13:</strong> Finish the JIRA</p>
-<p>Log the time, close the issue. This should normally be the end of a 
-sprint -so wrap that up too.</p>
-<p><strong>Step #14:</strong> Get back to developing!</p>
-<p>Check out the develop branch and purge all release artifacts</p>
-<div class="codehilite"><pre><span class="n">git</span> <span class="n">checkout</span> <span class="n">develop</span>
-<span class="n">git</span> <span class="n">pull</span> <span class="n">origin</span>
-<span class="n">mvn</span> <span class="n">clean</span>
-</pre></div>
-
-
-<p><em>At this point you are ready for Apache release from master.</em></p>
-<h2 id="wzxhzdk47wzxhzdk48phase-ii-publish-to-the-asf"><a name="phase2"></a>Phase - II: publish to the ASF</h2>
+<h2 id="wzxhzdk41wzxhzdk42phase-ii-publish-to-the-asf"><a name="phase2"></a>Phase - II: publish to the ASF</h2>
 <p>This phase of the process creates the artifacts for the ASF.
 This is done in a separate directory to ensure that nothing accidentally gets in.</p>
 <p>Preamble: set up the RC Version </p>
@@ -380,93 +375,206 @@ This is done in a separate directory to
 </pre></div>
 
 
-<p><strong>Step 3</strong></p>
-<p>Ensure the rat check is clean.</p>
-<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">clean</span> <span class="n">apache</span><span class="o">-</span><span class="nb">rat</span><span class="p">:</span><span class="n">check</span> <span class="o">-</span><span class="n">Prat</span>
+<h2 id="publish-via-svn">Publish via SVN (?)</h2>
+<p>Publish the release as below:</p>
+<div class="codehilite"><pre><span class="n">svn</span> <span class="n">co</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">dist</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">dist</span><span class="o">/</span><span class="n">release</span><span class="o">/</span><span class="n">incubator</span><span class="o">/</span><span class="n">slider</span> <span class="n">slider</span>
+
+<span class="n">cd</span> <span class="n">slider</span>
 </pre></div>
 
 
-<p><strong>Step 4</strong></p>
-<p>Tag for the release. Start with RC0 and move to RC1, RC2 if you need to restart the release process for this version.</p>
-<div class="codehilite"><pre><span class="n">git</span> <span class="n">tag</span> <span class="o">-</span><span class="n">a</span> <span class="n">release</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span>$<span class="n">RELEASE_RC</span> <span class="o">-</span><span class="n">m</span> <span class="s">&#39;Slider $SLIDER_RELEASE-$RELEASE_RC&#39;</span>
+<p>Make sure your PGP keys is in the KEYS file. The instructions to add a key 
+are at the top of the file</p>
+<p>Then...</p>
+<div class="codehilite"><pre><span class="n">mkdir</span> $<span class="n">SLIDER_RELEASE</span> $<span class="n">SLIDER_RELEASE</span><span class="o">/</span><span class="n">src</span>
+<span class="n">cd</span> $<span class="n">SLIDER_RELEASE</span><span class="o">/</span><span class="n">src</span>
+<span class="n">scp</span> <span class="o">~/</span><span class="n">public_html</span><span class="o">/</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span>$<span class="n">RELEASE_RC</span><span class="o">/*</span> <span class="p">.</span>
+<span class="n">cd</span> <span class="p">..</span>
+<span class="n">svn</span> <span class="n">add</span> $<span class="n">SLIDER_RELEASE</span>
+<span class="n">svn</span> <span class="n">commit</span> <span class="o">-</span><span class="n">m</span> &quot;<span class="n">SLIDER_RELEASE_JIRA</span> <span class="n">Committing</span> <span class="n">Release</span> $<span class="n">SLIDER_RELEASE</span>&quot;
+</pre></div>
+
+
+<p><strong>Step 14</strong></p>
+<p>Create the release tag:</p>
+<div class="codehilite"><pre><span class="n">On</span> <span class="n">branch</span> <span class="n">master</span>
+<span class="n">git</span> <span class="n">tag</span> <span class="o">-</span><span class="n">a</span> $<span class="n">SLIDER_RELEASE</span> <span class="o">-</span><span class="n">m</span> <span class="s">&#39;Slider $SLIDER_RELEASE&#39;</span>
 <span class="n">git</span> <span class="n">push</span> <span class="o">--</span><span class="n">tags</span> <span class="n">origin</span>
 </pre></div>
 
 
-<p><strong>Step 5</strong></p>
-<p>Create the release source tarball.</p>
-<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">clean</span> <span class="n">install</span> <span class="o">-</span><span class="n">DskipTests</span> <span class="o">-</span><span class="n">Papache</span><span class="o">-</span><span class="n">release</span> <span class="o">-</span><span class="n">Prat</span>
+<p><strong>Step 15</strong></p>
+<p>Update the Slider website as needed. Most of the documents would have been updated by now to reflect the released version. <em>The remaining changes should really be modifying the references to the latest release to the new version.</em></p>
+<p>The download details for the latest release needs to be updated after mirrors are updated in <strong>Step 12</strong>. </p>
+<p>Verify the download links at <a href="http://slider.incubator.apache.org">Slider Page</a>.</p>
+<h1 id="automated-releases-via-maven">Automated releases via maven</h1>
+<p>The Slider project uses Maven to automatically publish all the slider artifacts —source and binary— to the ASF repositories</p>
+<p>Core sequence
+1. Dry Run
+1. Deploy to staging</p>
+<ul>
+<li><a href="http://www.apache.org/dev/release.html">ASF release guidelines</a></li>
+<li><a href="http://maven.apache.org/maven-release/maven-release-plugin/index.html">Maven release plugin</a></li>
+<li><a href="http://www.apache.org/dev/publishing-maven-artifacts.html">ASF guide to publishing maven artifacts</a></li>
+<li><a href="http://www.apache.org/dev/publishing-maven-artifacts.html">Publishing Maven Artifacts</a></li>
+<li><a href="https://wiki.apache.org/commons/UsingNexus">https://wiki.apache.org/commons/UsingNexus</a></li>
+<li><a href="http://repo.maven.apache.org/maven2/org/apache/apache/10/apache-10.pom">Apache Parent Pom</a> for a template POM containing the release plugins. This is not used in the slider release —it was used as a source of some of the actions; the remainder being from the hadoop project.</li>
+</ul>
+<h2 id="preparation">Preparation</h2>
+<h3 id="maven-publishing-settings">Maven Publishing settings</h3>
+<p>You need to provide credentials to the ASF maven repos for publishing/releasing
+artifacts, using your ASF username and password.</p>
+<p>The ASF docs say use the maven encryption feature. 
+Our policy is: encrypt your HDD in its entirety —you should be doing that
+anyway.</p>
+<p>In <code>~/.m2/settings.xml</code>:</p>
+<div class="codehilite"><pre><span class="nt">&lt;servers&gt;</span>
+  <span class="c">&lt;!-- To publish a snapshot--&gt;</span>
+  <span class="nt">&lt;server&gt;</span>
+    <span class="nt">&lt;id&gt;</span>apache.snapshots.https<span class="nt">&lt;/id&gt;</span>
+    <span class="nt">&lt;username&gt;&lt;/username&gt;</span>
+    <span class="nt">&lt;password&gt;&lt;/password&gt;</span>
+  <span class="nt">&lt;/server&gt;</span>
+  <span class="c">&lt;!-- To stage a release --&gt;</span>
+  <span class="nt">&lt;server&gt;</span>
+    <span class="nt">&lt;id&gt;</span>apache.staging.https<span class="nt">&lt;/id&gt;</span>
+    <span class="nt">&lt;username&gt;&lt;/username&gt;</span>
+    <span class="nt">&lt;password&gt;&lt;/password&gt;</span>
+  <span class="nt">&lt;/server&gt;</span>
+  <span class="c">&lt;!-- To finalise the release--&gt;</span>
+  <span class="nt">&lt;server&gt;</span>
+    <span class="nt">&lt;id&gt;</span>apache.releases.https<span class="nt">&lt;/id&gt;</span>
+    <span class="nt">&lt;username&gt;&lt;/username&gt;</span>
+    <span class="nt">&lt;password&gt;&lt;/password&gt;</span>
+  <span class="nt">&lt;/server&gt;</span>
+<span class="nt">&lt;/servers&gt;</span>
+</pre></div>
+
+
+<h3 id="environment-variable-setup">Environment variable setup</h3>
+<p>It's handy to set up an environment with the arguments needed for releases.</p>
+<div class="codehilite"><pre><span class="n">export</span> <span class="n">RELARGS</span><span class="p">=</span>&quot;<span class="o">-</span><span class="n">DskipTests</span> <span class="o">-</span><span class="n">DskipITs</span> <span class="o">-</span><span class="n">Papache</span><span class="o">-</span><span class="n">release</span>&quot;
+<span class="n">echo</span> $<span class="n">RELARGS</span>
 </pre></div>
 
 
-<p>You should find a <code>*.tar.gz</code> at target folder (e.g. <code>./target/apache-slider-$SLIDER_RELEASE-source-release.tar.gz</code> and <code>.zip</code>)
-Rename it with <em>incubator</em> in the name.</p>
-<div class="codehilite"><pre><span class="n">cd</span> <span class="n">target</span>
+<h3 id="choose-your-versions">Choose your versions</h3>
+<p>Choose the version numbers for the release and for afterwards.</p>
+<div class="codehilite"><pre>0<span class="p">.</span>61<span class="p">.</span>0<span class="o">-</span><span class="n">incubating</span>
+0<span class="p">.</span>62<span class="p">.</span>0<span class="o">-</span><span class="n">incubating</span><span class="o">-</span><span class="n">SNAPSHOT</span>
+</pre></div>
+
 
-<span class="n">rm</span> <span class="nb">rat</span><span class="p">.</span><span class="n">txt</span>
-<span class="n">rm</span> <span class="p">.</span><span class="n">plxarc</span>
-<span class="n">rm</span> <span class="o">-</span><span class="n">rf</span> <span class="n">archive</span><span class="o">-</span><span class="n">tmp</span>
-<span class="n">rm</span> <span class="o">-</span><span class="n">rf</span> <span class="n">maven</span><span class="o">-</span><span class="n">shared</span><span class="o">-</span><span class="n">archive</span><span class="o">-</span><span class="n">resources</span>
+<h2 id="git-preparation">Git preparation</h2>
+<p>The maven automated release adds its own git tags and pushes things up to a branch. All work must be done on a branch created for the release process, so as to not interfere with the rest of the development. You are likely to end up rolling back the branch, force-pushing changes &amp;c, so cannot actively share the branch with anyone.</p>
+<h3 id="clone-the-repo">Clone the repo.</h3>
+<p>Don't release from your development dir; do it somewhere clean. Why so? Easier to clean up and guaranteed isolation.</p>
+<p>In a directory of your choice</p>
+<div class="codehilite"><pre><span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">git</span><span class="o">-</span><span class="n">wip</span><span class="o">-</span><span class="n">us</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">asf</span><span class="o">/</span><span class="n">incubator</span><span class="o">-</span><span class="n">slider</span><span class="p">.</span><span class="n">git</span> <span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span>
+<span class="n">cd</span> <span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span>
 </pre></div>
 
 
-<p><strong>Step 6</strong>
-&lt;!-- this is now automated</p>
-<p>Sign the tarball</p>
-<div class="codehilite"><pre><span class="n">export</span> <span class="n">ASF_USER</span><span class="p">=</span><span class="n">stevel</span>
+<h3 id="check-out-the-branch-you-plan-to-release-on-tag-it">Check out the branch you plan to release on; tag it</h3>
+<div class="codehilite"><pre><span class="n">cd</span> <span class="n">incubator</span><span class="o">-</span><span class="n">slider</span>
+<span class="n">git</span> <span class="n">checkout</span> <span class="o">-</span><span class="n">t</span> <span class="n">origin</span><span class="o">/</span><span class="n">branches</span><span class="o">/</span><span class="n">branch</span><span class="o">-</span>0<span class="p">.</span>6
+</pre></div>
+
 
-<span class="n">gpg2</span>  <span class="o">--</span><span class="n">armor</span>  <span class="o">--</span><span class="n">default</span><span class="o">-</span><span class="n">key</span> $<span class="n">ASF_USER</span><span class="p">@</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span> <span class="o">-</span><span class="n">v</span> <span class="o">--</span><span class="n">output</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">tar</span><span class="p">.</span><span class="n">gz</span><span class="p">.</span><span class="n">asc</span> <span class="o">--</span><span class="n">detach</span><span class="o">-</span><span class="n">sig</span> <span class="n">apache</span><span class="o">-</span><span cl
 ass="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">tar</span><span class="p">.</span><span class="n">gz</span>
-<span class="n">gpg2</span>  <span class="o">--</span><span class="n">armor</span>  <span class="o">--</span><span class="n">default</span><span class="o">-</span><span class="n">key</span> $<span class="n">ASF_USER</span><span class="p">@</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span> <span class="o">-</span><span class="n">v</span>  <span class="o">--</span><span class="n">output</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">zip</span><span class="p">.</span><span class="n">asc</span> <span class="o">--</span><span class="n">detach</span><span class="o">-</span><span class="n">sig</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<s
 pan class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">zip</span>
+<p>In the new clone, tag the head of the branch you plan to to work from. You don't need to push the tag to the repo.</p>
+<div class="codehilite"><pre><span class="n">git</span> <span class="n">tag</span> <span class="o">-</span><span class="n">a</span> <span class="n">tag_2015</span><span class="o">-</span>01<span class="o">-</span>27<span class="o">-</span><span class="n">prerelease</span><span class="o">-</span>0<span class="p">.</span>61<span class="p">.</span>0 <span class="o">-</span><span class="n">m</span> &quot;<span class="n">prior</span> <span class="n">to</span> <span class="n">maven</span> <span class="n">release</span> <span class="n">process</span>&quot;
 </pre></div>
 
 
-<p>--&gt;</p>
-<p><strong>Step 7</strong></p>
-<p>Generate MD5 checksums. <em>md5sum</em> and <em>sha1sum</em> or <em>gpg</em> are all capable of creating checksum files.</p>
-<p>Either</p>
-<div class="codehilite"><pre><span class="n">openssl</span> <span class="n">md5</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">tar</span><span class="p">.</span><span class="n">gz</span> <span class="o">&gt;</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">tar</span><span class="p">.</span><span class="n">gz</span><span class="p">.</span><span class="n">md5</span>
-<span class="n">openssl</span> <span class="n">sha1</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">tar</span><span class="p">.</span><span class="n">gz</span> <span class="o">&gt;</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">tar</span><span class="p">.</span><span class="n">gz</span><span class="p">.</span><span class="n">sha</span>
-<span class="n">openssl</span> <span class="n">md5</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">zip</span> <span class="o">&gt;</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">zip</span><span class="p">.</span><span class="n">md5</span>
-<span class="n">openssl</span> <span class="n">sha1</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">zip</span> <span class="o">&gt;</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">zip</span><span class="p">.</span><span class="n">sha</span>
+<h2 id="test-deploy-a-snapshot">Test Deploy a snapshot</h2>
+<p>This pushes up a <code>-SNAPSHOT</code> version to the ASF snapshot repo. It doesn't change the POMs; it does verify that you have the basic upload settings, signing keys etc.</p>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">clean</span> <span class="n">deploy</span> $<span class="n">RELARGS</span> <span class="o">-</span><span class="n">Darguments</span><span class="p">=</span>&quot;$<span class="n">RELARGS</span>&quot;
 </pre></div>
 
 
-<p>or</p>
-<div class="codehilite"><pre> <span class="n">md5sum</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">tar</span><span class="p">.</span><span class="n">gz</span> <span class="o">&gt;</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">tar</span><span class="p">.</span><span class="n">gz</span><span class="p">.</span><span class="n">md5</span>
- <span class="n">sha1sum</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">tar</span><span class="p">.</span><span class="n">gz</span> <span class="o">&gt;</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">tar</span><span class="p">.</span><span class="n">gz</span><span class="p">.</span><span class="n">sha</span>
- <span class="n">sha1sum</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">zip</span> <span class="o">&gt;</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">zip</span><span class="p">.</span><span class="n">sha</span>
- <span class="n">md5sum</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">zip</span> <span class="o">&gt;</span> <span class="n">apache</span><span class="o">-</span><span class="n">slider</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">zip</span><span class="p">.</span><span class="n">md5</span>
+<p>Assuming that all the test and integration tests have already been successful on normal workspace, you can skip the tests</p>
+<p>After the upload has completed, the complete archives will be in the version-specific subdirectory of</p>
+<p>https://repository.apache.org/content/repositories/snapshots/org/apache/slider/slider-assembly/</p>
+<p>download the uploaded <code>.tar.gz</code>, expand it and verify that it is complete. That includes</p>
+<ol>
+<li>Verify that the file <code>slider-agent.tar.gz</code> exists.</li>
+<li>Execute <code>bin/slider --version</code></li>
+<li>Assuming you have an existing installation for testing, set <code>SLIDER_CONF_DIR</code> to the configuration directory, then
+<code>slider start &lt;INSTANCE&gt;</code> to start the relevant cluster instance. </li>
+</ol>
+<h2 id="perform-a-dry-run-of-the-release">Perform a dry run of the release</h2>
+<p>Perform a dry run. This will commit changes to your local branch.</p>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">release</span><span class="p">:</span><span class="n">prepare</span> <span class="o">-</span><span class="n">DdryRun</span><span class="p">=</span><span class="n">true</span> <span class="o">-</span><span class="n">DautoVersionSubmodules</span><span class="p">=</span><span class="n">true</span> <span class="o">-</span><span class="n">Darguments</span><span class="p">=</span>&quot;$<span class="n">RELARGS</span>&quot;
 </pre></div>
 
 
-<p><strong>Step 8</strong></p>
-<p>Upload the artifacts to your apache home:</p>
-<p>The artifacts then need to be copied over to <code>~/public_html/slider-release-$SLIDER_RELEASE-rcX</code></p>
-<div class="codehilite"><pre><span class="n">cd</span> <span class="p">..</span>
+<ol>
+<li>This prompts for some version numbers: go with them unless you have specific choices of
+versions.</li>
+<li>Look at the output to verify the versions are what you want.</li>
+<li>Roll back to the commit tagged earlier</li>
+</ol>
+<h2 id="perform-the-maven-release">Perform the Maven release</h2>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">release</span><span class="p">:</span><span class="n">clean</span>
+<span class="n">mvn</span> <span class="n">release</span><span class="p">:</span><span class="n">prepare</span> <span class="o">-</span><span class="n">DautoVersionSubmodules</span><span class="p">=</span><span class="n">true</span> <span class="o">-</span><span class="n">Darguments</span><span class="p">=</span>&quot;$<span class="n">RELARGS</span>&quot; <span class="o">-</span><span class="n">Dresume</span><span class="p">=</span><span class="n">false</span> 
+<span class="n">mvn</span> <span class="n">release</span><span class="p">:</span><span class="n">perform</span> <span class="o">-</span><span class="n">Darguments</span><span class="p">=</span>&quot;$<span class="n">RELARGS</span>&quot;
+</pre></div>
 
-<span class="n">mv</span> <span class="n">target</span> <span class="n">slider</span><span class="o">-</span><span class="n">release</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span>$<span class="n">RELEASE_RC</span>
 
-<span class="n">scp</span> <span class="o">-</span><span class="n">r</span> <span class="n">slider</span><span class="o">-</span><span class="n">release</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span>$<span class="n">RELEASE_RC</span> $<span class="n">ASF_USER</span><span class="p">@</span><span class="n">people</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="p">:</span><span class="n">public_html</span><span class="o">/</span><span class="n">slider</span><span class="o">/</span>
+<ol>
+<li>the <code>release:prepare</code> command will trigger the local commit of changes to POMs, tagging this and pushing up the branch.</li>
+<li>only skip those test runs if you have been running the tests in advance.</li>
+<li>the funtests work by explicitly invoking <code>bin\slider</code> in the expanded tar directory under
+<code>../slider-assembly/target</code> —that is, it doesn't download and test any <code>.tar.gz</code> artifacts uploaded during
+the staging process.</li>
+</ol>
+<p>You may be asked for your ASF git password repeatedly.
+Consult <a href="http://stackoverflow.com/questions/5343068/is-there-a-way-to-skip-password-typing-when-using-https-github">StackOverflow</a></p>
+<p><em>rolling back</em>
+After this phase (or when you cancel it), you'll need to roll back git, force push the change to origin, and delete any newly created <code>slider-XY</code> tag locally <em>and</em> remotely.</p>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">release</span><span class="p">:</span><span class="n">rollback</span>
+<span class="n">mvn</span> <span class="n">clean</span>
 </pre></div>
 
 
-<p>(if you don't get the authentication for the copy, go to https://id.apache.org/ and add your ssh keys to your profile)</p>
-<p>The entire directory should now be uploaded, check it:</p>
-<div class="codehilite"><pre><span class="n">echo</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">people</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/~</span>$<span class="n">ASF_USER</span><span class="o">/</span><span class="n">slider</span><span class="o">/</span><span class="n">slider</span><span class="o">-</span><span class="n">release</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span>$<span class="n">RELEASE_RC</span>
+<p>If you are in a specific release-only directory (as per the instructions):</p>
+<div class="codehilite"><pre><span class="n">git</span> <span class="n">clean</span> <span class="o">-</span><span class="n">d</span> <span class="o">-</span><span class="n">f</span> <span class="o">-</span><span class="n">x</span>
 </pre></div>
 
 
-<p>on OS/X, you can have it opened in your chosen browser</p>
-<div class="codehilite"><pre><span class="n">open</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">people</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/~</span>$<span class="n">ASF_USER</span><span class="o">/</span><span class="n">slider</span><span class="o">/</span><span class="n">slider</span><span class="o">-</span><span class="n">release</span><span class="o">-</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span>$<span class="n">RELEASE_RC</span>
+<h3 id="tip-branching-instead-of-preparing">Tip: branching instead of preparing</h3>
+<p>The <code>mvn release:branch</code> goal can be used instead of <code>mvn release:prepare</code>, which creates a branch explicitly for the release. We haven't used this yet.</p>
+<h3 id="tip-reverting-changes">Tip: reverting changes</h3>
+<p>Try</p>
+<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">release</span><span class="p">:</span><span class="n">rollback</span>
 </pre></div>
 
 
-<p><strong>Step 9</strong></p>
-<p>(omitted)</p>
-<p><strong>Step 10</strong></p>
+<p>It <em>may</em> work. Also</p>
+<ol>
+<li>roll back the git branch to where it was before the release actions started
+changing things.</li>
+<li>Force push the rolled back branch back to the git repo.</li>
+</ol>
+<h3 id="tip-validating-the-artifacts">Tip: Validating the artifacts</h3>
+<p>There's a small projects <a href="https://github.com/steveloughran/slider-dependency-check">slider-dependency-check</a> which verifies that slider artifacts can be downloaded from the public or staging repositories. Clone this project and read its instructions to verify that everything went up to the staging repo.</p>
+<h2 id="close-the-release-in-nexus">Close the release in Nexus</h2>
+<ol>
+<li>log in to <a href="https://repository.apache.org/index.html">https://repository.apache.org/index.html</a>
+with your ASF username &amp; LDAP password</li>
+<li>go to <a href="https://repository.apache.org/index.html#stagingRepositories">Staging Repositories</a></li>
+<li>find the latest slider repository in the list</li>
+<li>select it; </li>
+<li>Browse the content, verify the version number is what you want.</li>
+<li>hit the "close" button. This will fail if it doesn't meet the ASF criteria</li>
+<li>Wait for the close process to complete.</li>
+<li>Get the URL of the closed staging repository. This is needed for the next step —the votes.</li>
+</ol>
+<h2 id="get-the-votes-in">Get the Votes In</h2>
+<h3 id="call-for-a-slider-vote">Call for a slider vote</h3>
 <p>Call for a release VOTE to the dev mailing list (<code>dev@slider.incubator.apache.org</code>).</p>
 <p>To build the URLs, echo them then verify in your browser that they are present</p>
-<div class="codehilite"><pre><span class="n">echo</span>  <span class="p">[</span><span class="n">VOTE</span><span class="p">]</span> <span class="n">Apache</span> <span class="n">Slider</span> <span class="n">Incubating</span> <span class="n">Release</span> $<span class="n">SLIDER_RELEASE</span> $<span class="n">RELEASE_RC</span>
+<div class="codehilite"><pre><span class="n">echo</span>  <span class="p">[</span><span class="n">VOTE</span><span class="p">]</span> <span class="n">Apache</span> <span class="n">Slider</span> <span class="n">Incubating</span> <span class="n">Release</span> $<span class="n">SLIDER_RELEASE</span>
 
 <span class="n">echo</span> &quot;<span class="n">This</span> <span class="n">is</span> <span class="n">a</span> <span class="n">call</span> <span class="k">for</span> <span class="n">a</span> <span class="n">vote</span> <span class="n">on</span> <span class="n">Apache</span> <span class="n">Slider</span> $<span class="n">SLIDER_RELEASE</span> <span class="n">release</span>&quot;
 
@@ -484,15 +592,18 @@ Rename it with <em>incubator</em> in the
 <p>Hello folks,</p>
 <p>This is a call for a vote on Apache Slider $SLIDER_RELEASE release. 
 Thanks to everyone who have contributed to this release.</p>
-<p>Git source tag:
-https://git-wip-us.apache.org/repos/asf?p=incubator-slider.git;a=shortlog;h=refs/tags/release-$SLIDER_RELEASE-$RELEASE_RC</p>
-<p>Staging site:
-http://people.apache.org/~$ASF_USER/slider-release-$SLIDER_RELEASE-$RELEASE_RC"</p>
-<p>PGP release keys (signed using $ASF_USER)
-http://pgp.mit.edu:11371/pks/lookup?op=vindex&amp;search=$ASF_USER@apache.org</p>
+<p>Git source checksum d3fd75007a209cf6439dde99c35a46a2632ca79d</p>
+<p>tag:
+https://git-wip-us.apache.org/repos/asf?p=incubator-slider.git;a=tag;h=refs/tags/slider-0.61.0</p>
+<p>Staging site:</p>
+<p>https://repository.apache.org/content/repositories/orgapacheslider-1002/org/apache/slider/</p>
+<p>The single archive is in </p>
+<p>https://repository.apache.org/content/repositories/orgapacheslider-1002/org/apache/slider/slider-assembly/0.61.0/</p>
+<p>PGP release keys (signed as stevel)
+http://pgp.mit.edu:11371/pks/lookup?op=vindex&amp;search=$stevel@apache.org</p>
 <p>The issues fixed in this release are listed at at:
-https://issues.apache.org/jira/browse/SLIDER/fixforversion/<FIX VERSION OF THIS RELEASE></p>
-<p>Note that this is a source only release and we are voting on the source.</p>
+https://issues.apache.org/jira/browse/SLIDER/fixforversion/12329034</p>
+<p>This is a source+binary release.</p>
 <p>Build instructions at: http://slider.incubator.apache.org/developing/building.html </p>
 <p>Vote will be open for 72 hours </p>
 <p>[ ] +1 approve
@@ -502,7 +613,7 @@ https://issues.apache.org/jira/browse/SL
 <ul>
 <li>CHECK ALL THE URLS FIRST *</li>
 </ul>
-<p><strong>Step 11</strong></p>
+<h3 id="call-for-an-incubator-vote">Call for an incubator vote</h3>
 <p>If the VOTE passes, call for VOTE from IPMC. Include the VOTE and RESULT thread from the dev alias.
 If that VOTE passes with the IPMC send a RESULT mail.</p>
 <p>Sample:</p>
@@ -519,48 +630,8 @@ If that VOTE passes with the IPMC send a
 </pre></div>
 
 
-<p><strong>Step 12</strong></p>
-<p>Verify your PGP key is provided to Apache. </p>
-<p>Apache verifies that distributions are correctly signed.
-Login to <a href="https://id.apache.org">https://id.apache.org</a> and verify the fingerprint of PGP key used to sign above is provided. (<code>gpg --fingerprint</code>)
-Upload your PGP public key only to <code>/home/$ASF_USER/.pgpkey</code></p>
-<div class="codehilite"><pre><span class="n">scp</span> <span class="n">public</span><span class="o">-</span><span class="n">key</span><span class="p">.</span><span class="n">asc</span> <span class="n">people</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="p">:.</span><span class="n">pgpkey</span>
-</pre></div>
-
-
-<p><strong>Step 13</strong></p>
-<p>Publish the release as below:</p>
-<div class="codehilite"><pre><span class="n">svn</span> <span class="n">co</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">dist</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">dist</span><span class="o">/</span><span class="n">release</span><span class="o">/</span><span class="n">incubator</span><span class="o">/</span><span class="n">slider</span> <span class="n">slider</span>
-
-<span class="n">cd</span> <span class="n">slider</span>
-</pre></div>
-
-
-<p>Make sure your PGP keys is in the KEYS file. The instructions to add a key 
-are at the top of the file</p>
-<p>Then...</p>
-<div class="codehilite"><pre><span class="n">mkdir</span> $<span class="n">SLIDER_RELEASE</span> $<span class="n">SLIDER_RELEASE</span><span class="o">/</span><span class="n">src</span>
-<span class="n">cd</span> $<span class="n">SLIDER_RELEASE</span><span class="o">/</span><span class="n">src</span>
-<span class="n">scp</span> <span class="o">~/</span><span class="n">public_html</span><span class="o">/</span>$<span class="n">SLIDER_RELEASE</span><span class="o">-</span>$<span class="n">RELEASE_RC</span><span class="o">/*</span> <span class="p">.</span>
-<span class="n">cd</span> <span class="p">..</span>
-<span class="n">svn</span> <span class="n">add</span> $<span class="n">SLIDER_RELEASE</span>
-<span class="n">svn</span> <span class="n">commit</span> <span class="o">-</span><span class="n">m</span> &quot;<span class="n">SLIDER_RELEASE_JIRA</span> <span class="n">Committing</span> <span class="n">Release</span> $<span class="n">SLIDER_RELEASE</span>&quot;
-</pre></div>
-
-
-<p><strong>Step 14</strong></p>
-<p>Create the release tag:</p>
-<div class="codehilite"><pre><span class="n">On</span> <span class="n">branch</span> <span class="n">master</span>
-<span class="n">git</span> <span class="n">tag</span> <span class="o">-</span><span class="n">a</span> $<span class="n">SLIDER_RELEASE</span> <span class="o">-</span><span class="n">m</span> <span class="s">&#39;Slider $SLIDER_RELEASE&#39;</span>
-<span class="n">git</span> <span class="n">push</span> <span class="o">--</span><span class="n">tags</span> <span class="n">origin</span>
-</pre></div>
-
-
-<p><strong>Step 15</strong></p>
-<p>Update the Slider website as needed. Most of the documents would have been updated by now to reflect the released version. <em>The remaining changes should really be modifying the references to the latest release to the new version.</em></p>
-<p>The download details for the latest release needs to be updated after mirrors are updated in <strong>Step 12</strong>. </p>
-<p>Verify the download links at <a href="http://slider.incubator.apache.org">Slider Page</a>.</p>
-<p><strong>Step 16</strong></p>
+<h2 id="publishing-the-release">Publishing the release</h2>
+<h2 id="announcing">Announcing</h2>
 <p>Send an announcement:</p>
 <p>The bits published in <strong>Step 13</strong> may take up to 24 hours to replicate to the mirrors.</p>
 <p>Send an announcement to the Slider dev, Slider user, and the general Apache announcement (announcement@apache.org) list after the bits have replicated.
@@ -584,149 +655,21 @@ To send the message to announcement@apac
 </pre></div>
 
 
-<p><strong>Step 17</strong></p>
+<h2 id="finish-the-jira">Finish the JIRA</h2>
+<p>Log the time, close the issue. This should normally be the end of a 
+sprint —so wrap that up too.</p>
+<h2 id="updating-jira-releases">Updating  JIRA Releases</h2>
 <p>Tell JIRA there's a new release. You must be registered as an admin for the
 Slider project on JIRA.</p>
 <p>Go to the <a href="https://issues.apache.org/jira/plugins/servlet/project-config/SLIDER/versions">Slider Versions page</a></p>
 <p>Release the version you've done, carrying forward issues that haven't been done
 yet.</p>
-<h2 id="hotfixing-a-release">Hotfixing a release</h2>
-<p>If you need to change a release —such as to issue a new RC, you must
-create a hotfix release which updates the <code>master/</code> and <code>develop/</code> branches.
-you can then create a new release off the last commit off the hotfix branch
-(the one which is then merged into both branches).</p>
-<ol>
-<li>
-<p>Create a JIRA for the hotfix, estimate as much time as the main release
-and any time needed to actually fix the code.</p>
-</li>
-<li>
-<p>set the release env var to it.</p>
-<div class="codehilite"><pre><span class="n">export</span> <span class="n">SLIDER_RELEASE_JIRA</span><span class="p">=</span><span class="n">SLIDER</span><span class="o">-</span>349
-</pre></div>
-
-
-</li>
-<li>
-<p>Create the hotfix branch with the JIRA version</p>
-</li>
-<li>Fix things.</li>
-<li>Rerun all the tests.</li>
-<li>Check in the fixes</li>
-<li>Note the commit number of the final commit</li>
-<li>With git flow, finish the hotfix</li>
-<li>start a git flow release using the specific commit of the hotfix branch,
-rather than <code>HEAD</code> of the <code>develop</code> branch.</li>
-<li>Note the current version of the develop artifacts; set <code>$SLIDER_DEV</code> to it.
-The POMs will be returned to this after the release process.</li>
-<li>
-<p>Create a new release version (e.g. slider-0.50.2). This can before that
-of the current develop branch:</p>
-<div class="codehilite"><pre><span class="n">export</span> <span class="n">SLIDER_RELEASE</span><span class="p">=</span>0<span class="p">.</span>50<span class="p">.</span>2<span class="o">-</span><span class="n">incubating</span>
-</pre></div>
-
-
-</li>
-<li>
-<p>Repeat the release process from step 4 to step 10.</p>
-</li>
-</ol>
-<p>When you get to the end of release phase, the end of release process will fail
-due to conflict between POM versions. </p>
-<ol>
-<li>
-<p>Resolve the conflict by accepting the new updates: the maven version will
-be set to the <code>$SLIDER_RELEASE</code> value, even though it is now older than
-the actual development version.</p>
-</li>
-<li>
-<p>verify that <code>$SLIDER_DEV</code> is set to the version you want to return the
-<code>develop/</code> branch to:</p>
-<div class="codehilite"><pre><span class="n">echo</span> $<span class="n">SLIDER_DEV</span>
-</pre></div>
-
-
-</li>
-<li>
-<p>reset the versions</p>
-<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">versions</span><span class="p">:</span><span class="n">set</span> <span class="o">-</span><span class="n">DnewVersion</span><span class="p">=</span>$<span class="n">SLIDER_DEV</span>
-<span class="n">git</span> <span class="n">commit</span> <span class="o">-</span><span class="n">a</span> <span class="o">-</span><span class="n">m</span> &quot;$<span class="n">SLIDER_RELEASE_JIRA</span> <span class="n">reverting</span> <span class="n">development</span> <span class="n">POMs</span> <span class="n">to</span> $<span class="n">SLIDER_DEV</span>&quot;
-</pre></div>
-
-
-</li>
-<li>
-<p>Continue the release process from step 12.</p>
-</li>
-</ol>
-<h2 id="publishing-artifacts">Publishing artifacts</h2>
-<p>Once the vote has (successfully) completed on both slider-dev and incubator-general, the artifacts may be published in two ways</p>
-<ol>
-<li>tarballs for download via the apache distribution system</li>
-<li>JAR files for download via the maven repository</li>
-</ol>
-<h3 id="publishing-files-for-apache-release">Publishing files for apache release</h3>
-<p>See the <a href="http://www.apache.org/dev/release.html">ASF release guidelines</a></p>
-<h1 id="work-in-progress-automated-releases-via-maven">Work-in-Progress Automated releases via maven</h1>
-<ul>
-<li>See <a href="http://www.apache.org/dev/publishing-maven-artifacts.html">ASF guide to publishing maven artifacts</a></li>
-<li>See <a href="http://repo.maven.apache.org/maven2/org/apache/apache/10/apache-10.pom">Apache Parent Pom</a> for a template POM containing the release plugins. This is not used in the slider release
-—it was used as a source of some of the actions; the remainder being from the hadoop project.</li>
-</ul>
-<p>Build the artifacts off the SVN commit used for the release.</p>
-<div class="codehilite"><pre> <span class="n">mvn</span> <span class="n">clean</span> <span class="n">install</span> <span class="o">-</span><span class="n">Papache</span><span class="o">-</span><span class="n">release</span>
-</pre></div>
-
-
-<h4 id="important-app-package-versions">Important: App package versions</h4>
-<p>The (slider 0.60) app package versions mean the artifacts are not suitable for uploading; they generate files such as <code>slider-storm-app-package-${pkg.version}.pom</code> which don't contain a valid version number.</p>
-<p>We have fixed this this from Slider 0.61/0.70 by moving the app packages out of the slider project itself, so drive them off other version information.</p>
-<h2 id="dry-run-of-release">Dry run of release</h2>
-<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">release</span><span class="p">:</span><span class="n">prepare</span> <span class="o">-</span><span class="n">DdryRun</span><span class="p">=</span><span class="n">true</span> <span class="o">-</span><span class="n">DautoVersionSubmodules</span><span class="p">=</span><span class="n">true</span> <span class="o">-</span><span class="n">Darguments</span><span class="p">=</span>&quot;<span class="o">-</span><span class="n">DskipTests</span> <span class="o">-</span><span class="n">DskipITs</span>&quot;
-</pre></div>
-
-
-<h2 id="deploy">Deploy</h2>
-<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">deploy</span> <span class="o">-</span><span class="n">DskipTests</span> <span class="o">-</span><span class="n">Papache</span><span class="o">-</span><span class="n">release</span>
-</pre></div>
-
-
-<h2 id="uploading-for-a-vote">uploading for a vote</h2>
-<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">release</span><span class="p">:</span><span class="n">clean</span>
-<span class="n">mvn</span> <span class="n">release</span><span class="p">:</span><span class="n">prepare</span> <span class="o">-</span><span class="n">DautoVersionSubmodules</span><span class="p">=</span><span class="n">true</span> <span class="o">-</span><span class="n">Darguments</span><span class="p">=</span>&quot;<span class="o">-</span><span class="n">DskipTests</span> <span class="o">-</span><span class="n">DskipITs</span>&quot; <span class="o">-</span><span class="n">Dresume</span><span class="p">=</span><span class="n">false</span>
-<span class="n">mvn</span> <span class="n">release</span><span class="p">:</span><span class="n">perform</span>
+<h2 id="get-back-to-developing">Get back to developing!</h2>
+<p>Check out the develop branch and purge all release artifacts</p>
+<div class="codehilite"><pre><span class="n">git</span> <span class="n">checkout</span> <span class="n">develop</span>
+<span class="n">git</span> <span class="n">pull</span> <span class="n">origin</span>
+<span class="n">mvn</span> <span class="n">clean</span>
 </pre></div>
-
-
-<p>You may be asked for your ASF git password repeatedly.
-Consult <a href="http://stackoverflow.com/questions/5343068/is-there-a-way-to-skip-password-typing-when-using-https-github">StackOverflow</a>.</p>
-<h3 id="closing-the-release">Closing the release</h3>
-<p>log in to <a href="https://repository.apache.org/index.html">https://repository.apache.org/index.html</a>
-with your ASF username &amp; LDAP password</p>
-<h3 id="reverting">reverting</h3>
-<p>Try
-    mvn release:rollback</p>
-<p>It <em>may</em> work. Also
-1. roll back the git branch to where it was before the release actions started
-changing things.
-1. Force push the rolled back branch back to the git repo.</p>
-<h1 id="notes-on-a-changed-process">Notes on a changed process</h1>
-<p>This is some working notes on the 0.61 release</p>
-<ul>
-<li>see: <a href="http://www.apache.org/dev/publishing-maven-artifacts.html">Publishing Maven Artifacts</a></li>
-<li>see: <a href="https://wiki.apache.org/commons/UsingNexus">https://wiki.apache.org/commons/UsingNexus</a></li>
-</ul>
-<p>Key: the mvn release package is what should be doing the automation</p>
-<p>you can log in to nexus at </p>
-<p>https://repository.apache.org/service/local/staging/deploy/maven2/org/apache/slider</p>
-<p>using your ASF username and LDAP passwd</p>
-<p>proposed</p>
-<ol>
-<li>mvn deploy of the snapshot</li>
-<li>publish the src</li>
-<li>vote on it</li>
-<li>if people are happy issue a release with the same files, rebadged</li>
-</ol>
   </div>
 
   <div id="footer">