You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by bu...@apache.org on 2016/02/22 17:17:13 UTC

svn commit: r980958 - in /websites/staging/taverna/trunk: cgi-bin/ content/ content/community/releasing.html

Author: buildbot
Date: Mon Feb 22 16:17:12 2016
New Revision: 980958

Log:
Staging update by buildbot for taverna

Modified:
    websites/staging/taverna/trunk/cgi-bin/   (props changed)
    websites/staging/taverna/trunk/content/   (props changed)
    websites/staging/taverna/trunk/content/community/releasing.html

Propchange: websites/staging/taverna/trunk/cgi-bin/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Feb 22 16:17:12 2016
@@ -1 +1 @@
-1731116
+1731674

Propchange: websites/staging/taverna/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Feb 22 16:17:12 2016
@@ -1 +1 @@
-1731116
+1731674

Modified: websites/staging/taverna/trunk/content/community/releasing.html
==============================================================================
--- websites/staging/taverna/trunk/content/community/releasing.html (original)
+++ websites/staging/taverna/trunk/content/community/releasing.html Mon Feb 22 16:17:12 2016
@@ -185,8 +185,6 @@ over a release.</p>
 <blockquote>
 <p>Release early, release often</p>
 </blockquote>
-<p><strong>Note</strong>: This page is still a <em>draft</em> under development. See <a href="https://issues.apache.org/jira/browse/TAVERNA-812">TAVERNA-812</a>
-for tasks required for a release.</p>
 <h2 id="preparations">Preparations<a class="headerlink" href="#preparations" title="Permanent link">&para;</a></h2>
 <ul>
 <li>Email dev@taverna to say a release is imminent. This gives the community a chance
@@ -194,7 +192,27 @@ to finish up anything they want to get i
 <li>Check Jira for <a href="https://issues.apache.org/jira/browse/TAVERNA">issues</a> on the corresponding
 <a href="https://issues.apache.org/jira/browse/TAVERNA/?selectedTab=com.atlassian.jira.jira-projects-plugin:components-panel">components</a>.
 If you find any that are blocking or in progress, consult with the dev@taverna list first.</li>
+<li>Create and maintain a Jira task to keep track of the subtasks. You may want to be
+inspired by <a href="https://issues.apache.org/jira/browse/TAVERNA-902">TAVERNA-902</a></li>
 </ul>
+<h3 id="jira-updates">Jira updates<a class="headerlink" href="#jira-updates" title="Permanent link">&para;</a></h3>
+<p>Check the <a href="https://issues.apache.org/jira/plugins/servlet/project-config/TAVERNA/versions">Jira versions</a>
+have a corresponding version for the release you are preparing, and a new version
+for the following development version.  E.g. you are preparing the release
+candidate taverna-language 0.15.1, so make sure <code>language 0.15.1</code> exists, and create
+<code>language 0.16.0</code> for the next development. You should also check that the earlier
+published version is marked as Published in Jira - you may need to find the <em>Published
+date</em> by looking in the email archives.</p>
+<p>Go through the <em>open issues</em> for the components you are preparing to release,
+e.g. <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20TAVERNA%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20%22Taverna%20Maven%20Parent%22%20ORDER%20BY%20priority%20DESC">Unresolved for Taverna Maven Parent</a> - close those that are done, and reschedule
+<em>Fix Version</em> to a later version if their "Fix Version" is set to the one
+you are preparing (or earlier).</p>
+<p>Now go through issues that are resolved since the previous release
+(e.g. <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20TAVERNA%20AND%20status%20in%20%28Done%2C%20%22In%20Review%22%29%20AND%20fixVersion%20in%20%28EMPTY%2C%20unreleasedVersions%28%29%29%20AND%20component%20%3D%20%22Taverna%20Language%22%20ORDER%20BY%20updated%20DESC">Done/In Review Taverna Language issues with Fix For No/Unreleased </a>),
+and set their <em>Fix version</em> to your release candidate version, so that
+they will appear in the generated
+<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12318322&amp;version=12332247">Release notes</a>
+(click <em>Configure Release Notes</em>).</p>
 <h3 id="prepare-your-build-machine">Prepare your build machine<a class="headerlink" href="#prepare-your-build-machine" title="Permanent link">&para;</a></h3>
 <p>You need to build and release Apache Taverna from a machine you have control
 over. Make sure you have a recent version of <code>java</code> and <code>mvn</code>:</p>
@@ -213,14 +231,14 @@ over. Make sure you have a recent versio
 </pre></div>
 
 
-<p>Then let's have a clean Maven Repository to ensure the build works out of the box.</p>
+<p>Then let's have a <strong>clean Maven Repository</strong> to ensure the build works out of the box.</p>
 <div class="codehilite"><pre><span class="n">cd</span> <span class="o">~/</span><span class="p">.</span><span class="n">m2</span><span class="o">/</span>
 <span class="n">mv</span> <span class="n">repository</span> <span class="n">repository</span><span class="o">-</span><span class="n">old</span>
 <span class="n">rm</span> <span class="o">-</span><span class="n">rf</span> <span class="n">repository</span><span class="o">-</span><span class="n">old</span> <span class="o">&amp;</span>
 </pre></div>
 
 
-<p>Similarly we'll check out freshly from git to a new folder,
+<p>Similarly we'll use a <strong>fresh check out</strong> from git to a new folder,
 to ensure uncommitted files are not being included in the release.
 For the examples below, we'll create and use <code>~/src/rc1</code>
 as the working directory.</p>
@@ -259,6 +277,8 @@ e.g.:</p>
 </pre></div>
 
 
+<p>Check your key has <strong>not expired</strong> - you can use <code>gpg --edit-key</code>
+and <code>gpg --send-key</code> to update.</p>
 <p>Now verify that the
 <a href="https://people.apache.org/keys/group/taverna.asc">people.apache.org taverna.asc</a>
 file now includes the correct key fingerprint, and update on dist:</p>
@@ -284,7 +304,8 @@ Be sure to clone using the <em>Apache Co
 released and which don't form part of this release.</p>
 <h2 id="git-config">Git config<a class="headerlink" href="#git-config" title="Permanent link">&para;</a></h2>
 <p>Make sure that each new checkout have the correct
-user name information and your <code>@apache.org</code> email address:</p>
+user name information and your <code>@apache.org</code> email address, as
+the Maven Release plugin will be doing the tagging on your behalf.</p>
 <div class="codehilite"><pre><span class="n">cd</span> <span class="n">incubator</span><span class="o">-</span><span class="n">taverna</span><span class="o">-</span><span class="n">maven</span><span class="o">-</span><span class="n">parent</span>
 <span class="n">git</span> <span class="n">config</span> <span class="n">user</span><span class="p">.</span><span class="n">name</span> &quot;<span class="n">Your</span> <span class="n">Name</span>&quot;
 <span class="n">git</span> <span class="n">config</span> <span class="n">user</span><span class="p">.</span><span class="n">email</span> <span class="n">you</span><span class="p">@</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span>
@@ -309,25 +330,25 @@ complete with <code>BUILD SUCCESS</code>
 Here, a <em>staging repository</em> will be automatically created.</p>
 <p>Ensure you can log in to the Nexus instance before performing a release.</p>
 <p>To provide the Nexus credentials, edit your <code>~/.m2/settings.xml</code> to include
-your apache.org committer credentials:</p>
-<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+your apache.org committer credentials for the servers
+<code>apache.snapshots.https</code> and <code>apache.releases.https</code>:</p>
+<p><code>xml
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
-  &ltservers&gt;
-    &ltserver&gt;
-      &ltid&gt;apache.snapshots.https&lt/id&gt;
-      &ltusername&gt;johndoe&lt/username&gt;
-      &ltpassword&gt;fishsoup&lt/password&gt;
-    &lt/server&gt;
+  &lt;servers&gt;
     &lt;server&gt;
-      &ltid&gt;apache.releases.https&lt/id&gt;
-      &ltusername&gt;johndoe&lt;/username&gt;
-      &ltpassword&gt;fishsoup&lt/password&gt;
-    &lt/server&gt;
-  &lt/servers&gt;
-&lt/settings&gt;
-</code></pre>
-
+      &lt;id&gt;apache.snapshots.https&lt;/id&gt;
+      &lt;username&gt;johndoe&lt;/username&gt;
+      &lt;password&gt;fishsoup&lt;/password&gt;
+    &lt;/server&gt;
+    &lt;server&gt;
+      &lt;id&gt;apache.releases.https&lt;/id&gt;
+      &lt;username&gt;johndoe&lt;/username&gt;
+      &lt;password&gt;fishsoup&lt;/password&gt;
+    &lt;/server&gt;
+  &lt;/servers&gt;
+&lt;/settings&gt;</code></p>
 <p>To check you have the correct credentials set up for
 write-access to
 <a href="https://repository.apache.org/content/repositories/snapshots/org/apache/taverna/">Apache's Maven repository</a>,
@@ -358,13 +379,18 @@ are no <code>-SNAPSHOT</code> dependenci
 <p><strong>Do not fix</strong> the <code>&lt;version&gt;</code> of the Maven project itself or
 its submodules, as they must be on the form <code>*-SNAPSHOT</code> in
 order for the Maven Release Plugin to modify them.</p>
-<p>Check if a newer <code>taverna-maven-parent</code> or other <code>taverna.*.version</code>
+<p>Check if a newer <code>apache-taverna-maven-parent</code> or other <code>taverna.*.version</code>
 dependencies are needed. This is usually indicated by depending on an
-unreleased SNAPSHOT version.  Accordingly, after the release process,
+unreleased <code>-SNAPSHOT</code> version.  Accordingly, after the release process,
 do <em>not</em> update <code>master</code> to use the bumped SNAPSHOT versions, as that would
-wrongly indicate that a newer dependency is needed.</p>
+wrongly indicate that a newer dependency is needed. (<em>After the
+release</em> you should change the <code>master</code> branch <code>pom.xml</code> so that
+the <code>&lt;properties&gt;</code> and <code>&lt;parent&gt;</code> use the current public release
+(not the release candidate, as it is not yet public).)</p>
 <p>For compile/test purposes, update all <code>taverna.*.version</code> properties
-to the <em>latest released version</em>.</p>
+to the <em>latest released version</em> - or the staging version if you
+need to depend on a release candidate version that is being
+prepared together with this one.</p>
 <p>Exception to the rule: - when OSGi backwards-compatibility is
 needed, e.g. an updated wsdl-activity that should work also with an
 older taverna-engine-api release.</p>
@@ -372,8 +398,8 @@ older taverna-engine-api release.</p>
 versioning and don't break API compatibility, an upstream
 dependency can be updated without forcing an update release
 of its downstream users.</p>
-<p>If you are updating <code>taverna-maven-parent</code>, then try to
-update this to the latest
+<p>If you are updating <code>apache-taverna-maven-parent</code>, then try to
+update this to use the latest version of the
 <a href="http://central.maven.org/maven2/org/apache/apache/">Apache super-pom</a> - be aware
 that this could change Maven build settings.</p>
 <p>Commit your <code>pom.xml</code> changes (if any) and push.</p>
@@ -386,12 +412,13 @@ that this could change Maven build setti
 <p>We use the
 <a href="https://maven.apache.org/maven-release/maven-release-plugin/">Maven release plugin</a>
 to release candidates as it ensures a consistent release process:</p>
-<div class="codehilite"><pre><span class="n">mvn</span> <span class="n">release</span><span class="p">:</span><span class="n">prepare</span>
+<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">DautoVersionSubmodules</span><span class="p">=</span><span class="n">true</span>
 </pre></div>
 
 
-<p><strong>Note:</strong> Maven will use <code>gpg</code> to tag and sign the artifacts - so you might want to
-install and configure a <strong>GPG Agent</strong> to avoid repeatedly providing your
+<p><strong>Note:</strong> Maven will use <code>gpg</code> multiple times to tag and sign the
+artifacts - so you might want to install and configure
+a <strong>GPG Agent</strong> to avoid repeatedly providing your
 GPG passphrase.</p>
 <p>The defaults for "What is the release version for" is usually good (assuming the SNAPSHOT version has been
 correctly bumped for any major/minor/patch changes to the code),
@@ -404,14 +431,24 @@ but check the <a href="#Version_numbers"
 </pre></div>
 
 
-<p>You will be asked for each submodule what version they should have - generally
-their version should be the same as their parent (except to explicitly allow
-API backward compatibility)</p>
+<p>If you do not include <code>-DautoVersionSubmodules=true</code> you will be asked for each
+submodule what version they should have - generally their version should be
+the same as their parent (except to explicitly allow API backward compatibility).</p>
 <p><strong>Note</strong>: Take care to use the correct version number if preparing a
 second release candidate, as Maven could suggest a higher version
 number based on the bumped <code>-SNAPSHOT</code> version.  </p>
-<p><strong>Important</strong>: If maven prompts for the development parent version remember to set it to *-incubating-SNAPSHOT (where * is what is now in the parent pom).
-If you forget this then please reset it manually in the pom and commit manually after the release has been deployed. If the parent version is set wrong then it can lead to build issues in jenkins etc.  </p>
+<p><strong>Important</strong>: If Maven prompts for the new
+<em>development</em> <em>parent</em> version remember to set it back to the previous
+<code>*-incubating-SNAPSHOT</code> (where `*`` is what is now in the parent pom).
+The reason for this is that the taverna-maven-parent
+release candidate will remain in the staging repository
+and can't be used by developers until it is released - and if
+you bump this to the next SNAPSHOT version early, then other modules
+that may rely on the previous SNAPSHOT will stop working as the
+Nexus repository wipes older SNAPSHOTS regularly - and this
+could break Jenkins builds and developer builds.
+(Too late? You can always fix this manually in the pom and
+commit manually after the release has been performed/deployed.)</p>
 <h4 id="version-numbers">Version numbers<a class="headerlink" href="#version-numbers" title="Permanent link">&para;</a></h4>
 <ul>
 <li>Has to end in <code>-incubating</code> (while Apache Taverna is incubating)</li>
@@ -434,7 +471,7 @@ e.g. <code>2.13.1-incubating</code></li>
 
 
 <p>Note that as we use of OSGi, the public Java API is usually just what is exposed
-by the <code>*-api</code> modules, meaning that implementatoin changes normally should
+by the <code>*-api</code> modules, meaning that implementation changes normally should
 just warrant a new patch version. We should also consider indirect APIs, such
 as an Activity's expected JSON configuration or
 the REST API of the Taverna Server.  </p>
@@ -474,6 +511,7 @@ edit and commit required changes, and st
 <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">vi</span> <span class="n">foo</span><span class="o">/</span><span class="n">pom</span><span class="p">.</span><span class="n">xml</span>
 <span class="n">git</span> <span class="n">commit</span>
+<span class="n">git</span> <span class="n">push</span>
 <span class="n">mvn</span> <span class="n">release</span><span class="p">:</span><span class="n">prepare</span>
 </pre></div>
 
@@ -507,14 +545,14 @@ which should be something like
 <code>https://repository.apache.org/content/repositories/orgapachetaverna-1003/</code></p>
 <h3 id="uploading-to-distapacheorg">Uploading to dist.apache.org<a class="headerlink" href="#uploading-to-distapacheorg" title="Permanent link">&para;</a></h3>
 <p>The release candidate source code, checksums and signatures
-should be uploaded to
+should be uploaded to the <code>dev</code> area of
 <a href="https://dist.apache.org/repos/dist/dev/incubator/taverna/">dist.apache.org</a>
 using <code>svn</code> - which we'll check out to a new folder <code>~/src/rc1/dist</code>:</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">dev</span><span class="o">/</span><span class="n">incubator</span><span class="o">/</span><span class="n">taverna</span> <span class="n">dist</span>
 </pre></div>
 
 
-<p>The <code>source</code> folder should normally be empty -- if
+<p>The <code>source</code> folder of <code>dev</code> should normally be empty -- if
 you find remains of an earlier RC that is not
 still under <em>[VOTE]</em>, first remove them with <code>svn rm</code>:</p>
 <div class="codehilite"><pre><span class="n">cd</span> <span class="n">dist</span><span class="o">/</span><span class="n">source</span>
@@ -578,7 +616,7 @@ you might need a <em>Refresh</em> in the
 <p>Any Apache release must be approved through a
 <a href="http://www.apache.org/foundation/voting.html">vote</a>
 of the project's PMC. As Apache Taverna is an incubating project, a Taverna release must be
-approved by both the  <a href="/about">Apache Taverna PPMC</a> and the
+approved by both the  <a href="/about">Apache Taverna PPMC</a> followed by the
 <a href="http://incubator.apache.org/guides/ppmc.html">Apache Incubator IPMC</a>.</p>
 <p>Before an Apache Taverna release can be distributed, it must thus pass two stages:</p>
 <ul>
@@ -588,20 +626,22 @@ approved by both the  <a href="/about">A
 <p>Each of the <em>[VOTE]</em> threads should be open for <strong>at least 72 hours</strong>, allowing time for
 sufficient <a href="#Reviewing">review</a>, and catering for differences in
 holidays and timezones.</p>
-<p>Including 24 hours grace period for the download mirrors,
+<p>Including 24 hours grace period for the download mirrors to update,
 this means a release takes a minimum of a week before
 a release candidate might be published and released.</p>
 <p>Anyone in the <a href="/community">community</a> can participate in the
 review and vote, not just PMC members or committers. Only votes
-from IPMC members are <strong>binding</strong>.</p>
+from IPMC members (e.g. our mentors) are <strong>binding</strong>.</p>
 <h3 id="vote-email-to-devtaverna">Vote email to dev@taverna<a class="headerlink" href="#vote-email-to-devtaverna" title="Permanent link">&para;</a></h3>
 <p>To start the release vote, modify the below example and send to dev@taverna.
 Remember <code>[VOTE]</code> in the subject line and change the version number to match the
 release candidate.</p>
-<p>Subject: [VOTE] Release Apache Taverna Language 0.15.0-incubating RC2</p>
+<p>```
+Subject: [VOTE] Release Apache Taverna Language 0.15.0-incubating RC2</p>
 <p>I am pleased to be calling this vote for the source release of</p>
 <p>Apache Taverna Maven Parent 1-incubating
   Apache Taverna Language 0.15.0-incubating</p>
+<p>To discuss this release candidate, use the corresponding [DISCUSS] thread.</p>
 <p>Apache Taverna Language is a set of APIs for workflow definitions (SCUFL2)
 and workflow inputs/outputs/run (DataBundle), as consumed and produced by the
 Apache Taverna workflow system. The API includes support for working with
@@ -641,14 +681,79 @@ majority of at least three +1 Apache Tav
 [ ] -1 Do not release this package because...</p>
 <p>Anyone can participate in testing and voting, not just
 committers, please feel free to try out the release candidate
-and provide your votes.</p>
+and provide your votes.
+```</p>
 <h3 id="discuss-email-to-devtaverna">Discuss email to dev@taverna<a class="headerlink" href="#discuss-email-to-devtaverna" title="Permanent link">&para;</a></h3>
 <p>It is also recommended to start the discussion around the release candidate with
 a separate thread with subject  </p>
+<blockquote>
 <p>[DISCUSS]: Release Apache Taverna Language 0.15.0-incubating RC2  </p>
+</blockquote>
 <p>Remember to change the version number as appropriate for the release candidate.</p>
+<p><strong>Tip:</strong> Do not use the "Reply to All" button from the <code>[VOTE]</code> email to create the
+<code>[DISCUSS]</code> thread - as then they would still appear as a single thread
+due to the <code>In-Reply-To</code> email header.</p>
 <h3 id="tallying-the-vote">Tallying the vote<a class="headerlink" href="#tallying-the-vote" title="Permanent link">&para;</a></h3>
+<p>After at least 72 hours, count the votes in the [VOTE] thread. You need to
+count separately the <strong>binding</strong> votes from mentors, as these can
+carry over to the general@incubator vote.</p>
+<p>You can find URLs for individual emails (e.g. the binding votes) in the
+<a href="http://mail-archives.apache.org/mod_mbox/incubator-taverna-dev/">dev@taverna archive</a>
+by clicking a message and then clicking <em>Permalink</em>.  Note that the email
+archive may be slow to update.</p>
+<p>To close the vote thread, send a <code>[RESULT][VOTE]</code> email to dev@taverna, e.g.</p>
+<p>```
+Subject: [RESULT][VOTE] Release Apache Taverna Parent 1-incubating-RC4 &amp; Apache Taverna Language 0.15.0-incubating RC4</p>
+<p>Voting for Apache Taverna Parent 1-incubating &amp; Apache Taverna
+Language 0.15.0-incubating is now closed.  The release has
+<em>passed</em> with the following tally:</p>
+<p>Binding +1s:</p>
+<p>Marlon Pierce (see
+http://mail-archives.apache.org/mod_mbox/incubator-taverna-dev/201507.mbox/%3CD1E0E778.447EC%25marpierc%40iu.edu%3E)</p>
+<p>Andy Seaborne (see
+http://mail-archives.apache.org/mod_mbox/incubator-taverna-dev/201508.mbox/%3C55C86B79.3040006%40apache.org%3E)</p>
+<p>Non binding +1s:</p>
+<p>Ian Dunlop
+Alan Williams
+Stian Soiland-Reyes
+Donal K. Fellows
+```</p>
+<p>If the vote has not passed (at least +3, or more negative than positive)
+then you will need to pull the release candidate and start over after
+addressing the concerns.</p>
+<p>If there are any <code>-1</code> or <code>0</code> votes, then those concerns should be addressed.
+Often it can be sufficient to just track these in Jira as scheduled
+for the next release - while other times the concern could be grave
+enough to pull the release (e.g. doesn't compile).</p>
 <h3 id="vote-email-to-generalincubator">Vote email to general@incubator<a class="headerlink" href="#vote-email-to-generalincubator" title="Permanent link">&para;</a></h3>
+<p>Using the tally count, now you can send another <code>[VOTE]</code> email to the
+<a href="http://mail-archives.apache.org/mod_mbox/incubator-general/">general@incubator</a>
+list (which you must be subscribed to):</p>
+<p>```
+Subject: [VOTE] Release Apache Taverna Parent 1-incubating-RC4 &amp; Apache Taverna Language 0.15.0-incubating RC4</p>
+<p>The Apache Taverna Incubator PPMC has voted +5 to release</p>
+<p>Apache Taverna Parent 1-incubating (RC4)
+Apache Taverna Language 0.15.0-incubating (RC4)</p>
+<p>Incubator PMC members please review and vote on this incubator release.</p>
+<p>Apache Taverna Language is a set of APIs for workflow definitions
+(SCUFL2) and workflow inputs/outputs/run (DataBundle), as consumed and
+produced by the Apache Taverna workflow system. The API includes
+support for working with Research Object Bundles, and loading/saving
+Taverna workflows in different formats.</p>
+<p>Please see original [VOTE] thread
+http://mail-archives.apache.org/mod_mbox/incubator-taverna-dev/201507.mbox/%3C55B8DBC7.2040806%40manchester.ac.uk%3E</p>
+<p>and [DISCUSS] thread
+http://mail-archives.apache.org/mod_mbox/incubator-taverna-dev/201507.mbox/%3C55B8DC3F.2070602%40manchester.ac.uk%3E</p>
+<p>The release candidates to be voted over are available at:</p>
+<p>(.. copy the download/test details from previous email)</p>
+<p>Please vote on releasing these packages as:</p>
+<p>Apache Taverna Maven Parent 1-incubating
+Apache Taverna Language 0.15.0-incubating</p>
+<p>The vote will be open for a minimum of 72 hours.</p>
+<p>[ ] +1 Release this package
+[ ] 0 I don't feel strongly about it, but don't object
+[ ] -1 Do not release this package because...
+```</p>
 <h2 id="dropping-a-release-candidate">Dropping a release candidate<a class="headerlink" href="#dropping-a-release-candidate" title="Permanent link">&para;</a></h2>
 <p>If a release candidate is to be dropped, e.g. it fails the <em>[VOTE]</em>, then:</p>
 <p>In Nexus, tick the <a href="https://repository.apache.org/#stagingRepositories">staging repository</a> and <em>Drop</em>.</p>
@@ -667,32 +772,52 @@ a separate thread with subject  </p>
 </pre></div>
 
 
+<p>Raise Jira issues for the reasons that caused the RC to be dropped.</p>
 <h2 id="distributing">Distributing<a class="headerlink" href="#distributing" title="Permanent link">&para;</a></h2>
 <p>Once a <em>[VOTE] [Results]</em> email has been agreed on general@incubator,
 then:</p>
 <ul>
 <li>Promote the release candidate to a release</li>
+<li>Update download page</li>
+<li>Send announcement email</li>
 </ul>
 <h3 id="moving-to-release-area">Moving to release area<a class="headerlink" href="#moving-to-release-area" title="Permanent link">&para;</a></h3>
 <p>Use full URL <code>svn mv</code> to move the accepted release candidate
 to the <code>release</code> folder structure on dist.apache.org,
 e.g. at
 <a href="https://dist.apache.org/repos/dist/release/incubator/taverna/source/">https://dist.apache.org/repos/dist/release/incubator/taverna/source/</a>
-but remember to remove the <code>-RC1</code> from the folder name.</p>
+but <strong>remember to remove the <code>-RC1</code></strong> part from the folder name.</p>
 <div class="codehilite"><pre><span class="n">svn</span> <span class="n">mv</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">dev</span><span class="o">/</span><span class="n">incubator</span><span class="o">/</span><span class="n">taverna</span><span class="o">/</span><span class="n">source</span><span class="o">/</span><span class="n">taverna</span><span class="o">-</span><span class="n">language</span><span class="o">-</span>0<span class="p">.</span>15<span class="p">.</span>0<span class="o">-</span><span class="n">incubating</span><span class="o">-</span><span class="n">RC2</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">taverna</span><span class="o">/</span><span class="n">source</span><span class="o">/</span><span class="n">taverna</span><span class="o">-</span><span class="n">language</span><span class="o">-</span>0<span class="p">.</span>15<span class="p">.</span>0<span class="o">-</span><span class="n">incubating</span> <span class="o">-</span><span class="n">m</span> &quot;<span class="n">Releasing</span> <span class="n">apache</span> <span class="n">taverna</span><span class="o">-</span><span class="n">language</span><span class="o">-</span>0<span class="p">.</span>15<span class="p">.</span>0<span class="o">-</span><span class="n">incubat
 ing</span>&quot;
 <span class="n">svn</span> <span class="n">mv</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">dev</span><span class="o">/</span><span class="n">incubator</span><span class="o">/</span><span class="n">taverna</span><span class="o">/</span><span class="n">source</span><span class="o">/</span><span class="n">taverna</span><span class="o">-</span><span class="n">parent</span><span class="o">-</span>1<span class="o">-</span><span class="n">incubating</span><span class="o">-</span><span class="n">RC2</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">taverna</span><span class="o">/</span><span class="n">source</span><span class="o">/</span><span class="n">taverna</span><span class="o">-</span><span class="n">parent</span><span class="o">-</span>1<span class="o">-</span><span class="n">incubating</span> <span class="o">-</span><span class="n">m</span> &quot;<span class="n">Releasing</span> <span class="n">apache</span> <span class="n">taverna</span><span class="o">-</span><span class="n">parent</span><span class="o">-</span>1<span class="o">-</span><span class="n">incubating</span>&quot;
 </pre></div>
 
 
-<h3 id="update-download-page">Update download page<a class="headerlink" href="#update-download-page" title="Permanent link">&para;</a></h3>
-<p>Wait 24 hours for the download mirrors to pick up the new release from <code>dist.apache.org</code>.</p>
-<p>TODO.</p>
-<h3 id="removing-old-versions">Removing old versions<a class="headerlink" href="#removing-old-versions" title="Permanent link">&para;</a></h3>
-<p>TODO</p>
 <h3 id="releasing-maven-repository">Releasing Maven repository<a class="headerlink" href="#releasing-maven-repository" title="Permanent link">&para;</a></h3>
 <p>Tick the correct <a href="https://repository.apache.org/#stagingRepositories">staging repository</a> (perhaps do a quick check of an SHA1 sum against the vote email), then click <em>Release</em>.
 It should then propagate to <a href="https://repository.apache.org/content/repositories/releases/org/apache/taverna/">Apache's release Maven repository</a>
-and eventually mirrored to <a href="http://central.maven.org/maven2/org/apache/taverna/">Maven Central</a>.</p></div>
+and eventually mirrored to <a href="http://central.maven.org/maven2/org/apache/taverna/">Maven Central</a>.</p>
+<h3 id="update-download-page">Update download page<a class="headerlink" href="#update-download-page" title="Permanent link">&para;</a></h3>
+<p>Wait 24 hours for the download mirrors
+to pick up the new release from <code>dist.apache.org</code>, otherwise eager
+users (or users who just happened to want to download that day)
+may get <code>404 Not Found</code> errors.</p>
+<p>Update (or make) the corresponding pages under http://taverna.incubator.apache.org/download/
+including the correct version number for the Maven dependencies and the release dates.</p>
+<p>Download links should be using the mirror redirector https://www.apache.org/dyn/closer.cgi, e.g.
+https://www.apache.org/dyn/closer.cgi/incubator/taverna/source/taverna-language-0.15.0-incubating/taverna-language-0.15.0-incubating-source-release.zip
+while asc/md5/sha1 links should go directly to https://www.apache.org/dist/ - e.g. https://www.apache.org/dist/incubator/taverna/source/taverna-language-0.15.0-incubating/taverna-language-0.15.0-incubating-source-release.zip.asc
+(important bit: <code>https</code>)</p>
+<h3 id="removing-old-versions">Removing old versions<a class="headerlink" href="#removing-old-versions" title="Permanent link">&para;</a></h3>
+<p><strong>After</strong> the download page has been published, the download mirrors have synchronized
+and the new version is live
+you must <strong>remove the old versions</strong> from https://dist.apache.org/repos/dist/release/incubator/taverna/source/</p>
+<div class="codehilite"><pre><span class="n">svn</span> <span class="n">rm</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">taverna</span><span class="o">/</span><span class="n">source</span><span class="o">/</span><span class="n">taverna</span><span class="o">-</span><span class="n">language</span><span class="o">-</span>0<span class="p">.</span>14<span class="p">.</span>0<span class="o">-</span><span class="n">incubating</span><span class="o">/</span>
+<span class="n">svn</span> <span class="n">rm</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">taverna</span><span class="o">/</span><span class="n">source</span><span class="o">/</span><span class="n">taverna</span><span class="o">-</span><span class="n">parent</span><span class="o">-</span>1<span class="o">-</span><span class="n">incubating</span><span class="o">/</span>
+</pre></div>
+
+
+<p>Older versions are archived under http://archive.apache.org/dist/incubator/taverna/source/
+but won't appear on the download mirrors.</p></div>
 
     </div>