You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@onami.apache.org by si...@apache.org on 2013/01/09 13:57:26 UTC

svn commit: r1430830 - in /incubator/onami/trunk/site/src/site: apt/committers/release-howto.apt xdoc/release-howto.xml

Author: simonetripodi
Date: Wed Jan  9 12:57:26 2013
New Revision: 1430830

URL: http://svn.apache.org/viewvc?rev=1430830&view=rev
Log:
added missing documentation about how to make a release for Apache Onami components

Added:
    incubator/onami/trunk/site/src/site/xdoc/release-howto.xml   (with props)
Removed:
    incubator/onami/trunk/site/src/site/apt/committers/release-howto.apt

Added: incubator/onami/trunk/site/src/site/xdoc/release-howto.xml
URL: http://svn.apache.org/viewvc/incubator/onami/trunk/site/src/site/xdoc/release-howto.xml?rev=1430830&view=auto
==============================================================================
--- incubator/onami/trunk/site/src/site/xdoc/release-howto.xml (added)
+++ incubator/onami/trunk/site/src/site/xdoc/release-howto.xml Wed Jan  9 12:57:26 2013
@@ -0,0 +1,341 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ | Licensed to the Apache Software Foundation (ASF) under one
+ | or more contributor license agreements.  See the NOTICE file
+ | distributed with this work for additional information
+ | regarding copyright ownership.  The ASF licenses this file
+ | to you under the Apache License, Version 2.0 (the
+ | "License"); you may not use this file except in compliance
+ | with the License.  You may obtain a copy of the License at
+ |
+ |   http://www.apache.org/licenses/LICENSE-2.0
+ |
+ | Unless required by applicable law or agreed to in writing,
+ | software distributed under the License is distributed on an
+ | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ | KIND, either express or implied.  See the License for the
+ | specific language governing permissions and limitations
+ | under the License.
+-->
+<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
+
+  <properties>
+    <title>Release HowTo</title>
+    <author email="onami-dev@incubator.apache.org">Apache Onami Documentation Team</author>
+  </properties>
+
+  <body>
+    <section name="HowTo Release Apache Onami">
+      <p>This short guide is for volunteers that intend to cover the role of Release Manager</p>
+    </section>
+
+    <section name="Prerequisites">
+      <ul>
+        <li>Install/Configure <code>GPG</code> - The artifacts that are deployed to the ASF central repository need to
+        be signed. To do this you will need to have a public and private keypair. There is a very good
+        <a href="http://www.sonatype.com/people/2010/01/how-to-generate-pgp-signatures-with-maven/">guide</a> that will
+        walk you though this.</li>
+
+        <li>Install <a href="http://maven.apache.org/">Apache Maven</a> 2.2.1 or higher. 2.2.0 has a bug that will
+        produce invalid checksums; we strongly encourage our committers to install Apache Maven 3.0.4.</li>
+
+        <li>Configure Apache Maven <a href="./maven-settings.html">settings</a>.</li>
+      </ul>
+    </section>
+
+    <section name="Release steps">
+      <subsection name="Prepare the source for release">
+        <ol>
+          <li>Clean up JIRA so the <b>Fix Version</b> in issues resolved since the last release includes this release
+          version correctly. Also, transition any <b>Resolved</b> issues to the <b>Closed</b> state.
+          </li>
+          <li> Update the text files in a working copy of the project root:
+            <ol>
+              <li>Update the <tt>CHANGES</tt> based on the Text release reports from JIRA.</li>
+              <li>Commit any changes back to svn: <pre>svn commit -m "updating files for release"</pre>.</li>
+            </ol>
+          </li>
+          <li>Perform a full build and deploy the SNAPSHOT artifacts: <pre>mvn clean deploy</pre></li>
+        </ol>
+      </subsection>
+
+      <subsection name="Get source tree">
+        <ol>
+          <li><strong><em>Only for new major releases (like 1.0.0 to 1.1.0):</em></strong>
+          <br/>
+          Create a sub-branch from which to make the release.
+          <br/>
+          Releasing from a branch will allow any cosmetic changes that need to be made for the release to be 
+          approved to be done without preventing other more disruptive advances in the trunk from potentially 
+          causing problems with the release. It also provides a future maintenance branch (like 1.0.x.)
+          <br/>
+          A branch can be made by running:
+          <pre>mvn release:branch -DbranchName=1.0.x</pre></li>
+          <li>Checkout a clean copy of the branch to release using command line svn:
+          <pre>svn checkout https://svn.apache.org/repos/asf/incubator/onami/branches/${module}-${version}</pre></li>
+        </ol>
+      </subsection>
+
+      <subsection name="Prepare the release">
+        <ol>
+          <li>Do a dry run of the <tt>release:prepare</tt> step.
+          <pre>mvn release:prepare -DdryRun=true</pre>
+
+          The dry run will not commit any changes back to SVN and gives you the opportunity to verify that the 
+          release process will complete as expected.
+
+          <p><em>If you cancel a <tt>release:prepare</tt> before it updates the pom.xml versions, then use the 
+          <tt>release:clean</tt> goal to just remove the extra files that were created.</em></p></li>
+
+          <li>Verify that the release process completed as expected:
+            <ol>
+              <li>The release plugin will create <code>pom.xml.tag</code> files which contain the changes that would
+              have been committed to SVN. The only differences between <code>pom.xml.tag</code> and its corresponding 
+              <code>pom.xml</code> file should be the version
+              number.</li>
+
+              <li>If other formatting changes have been made you should review the changes and then commit them:
+              <pre>svn commit -m "fixing formatting for release"</pre></li>
+
+              <li>Assuming the <code>.tag</code> files look OK you may proceed and do any other validation you feel
+              necessary. The following list may be helpful:
+                <ol>
+                  <li>Check <tt>release.properties</tt> and make sure that the scm properties have the right version.
+                  Sometimes the scm location can be the previous version not the next version.</li>
+
+                  <li>Verify signatures: On Un*x platforms the following command can be executed:
+<source>for file in `find . -type f -iname '*.asc'`
+do
+  gpg --verify ${file}
+done</source>
+
+                  You'll need to look at the output to ensure it contains only good signatures:
+<source>gpg: Good signature from ...
+gpg: Signature made ...</source>
+                  </li>
+                </ol>
+              </li>
+
+              <li>Once any failures or required updates have been committed to svn, rollback the release prepare files:
+              <source>mvn release:rollback</source></li>
+            </ol>
+          </li>
+
+          <li>Run the <tt>release:prepare</tt> step for real this time. You'll be prompted for the same version
+          information and optionally your GPG passphrase again. <pre>mvn release:prepare</pre>
+          </li>
+        </ol>
+      </subsection>
+
+      <subsection name="Perform the release">
+        <ol>
+          <li>
+            From the directory where you have launched <tt>release:prepare</tt> execute (this step will create a maven staging repository):
+            <source>mvn release:perform [-Duser.name=&lt;your_apache_uid&gt;]</source>
+
+            <p>
+              <em>If your local OS userid doesn't match your Apache userid, then you'll have to also override the value 
+                provided by the OS to Maven for the site-deploy step to work. This is known to work for Linux, 
+                but not for Mac and unknown for Windows.
+              </em>
+            </p>
+
+            <ol>
+              <li>Verify the staged artifacts in the Nexus repository:
+                <ol>
+                  <li><a href="https://repository.apache.org/index.html">https://repository.apache.org/</a></li>
+                  <li><strong>Enterprise --&gt; Staging</strong></li>
+                  <li><strong>Staging tab --&gt; Name column --&gt; org.apache.onami</strong></li>
+                  <li>Navigate through the artifact tree and make sure that all binary,
+                    <code>javadoc</code>,
+                    <code>sources</code>, and
+                    <code>tests</code> jars, as well as
+                    <code>pom</code>s, ... have
+                    <code>.asc</code> (GPG signature) and checksum files (see
+                    <a href="http://people.apache.org/~henkp/repo/faq.html">Repository FAQ</a> and
+                    <a href="http://www.apache.org/dev/release-signing.html#openpgp-ascii-detach-sig">Detached Signatures</a>).
+                  </li>
+                </ol>
+              </li>
+
+              <li>Close the Nexus staging repo:
+                <ol>
+                  <li><a href="https://repository.apache.org/index.html">https://repository.apache.org/</a></li>
+                  <li><strong>Enterprise --&gt; Staging</strong></li>
+                  <li><strong>Staging tab --&gt; Name column --&gt; org.apache.onami</strong></li>
+                  <li>Right click on the open <code>org.apache.onami-XXX</code> staging repo and select
+                  <strong>Close</strong>.</li>
+                </ol>
+              </li>
+            </ol>
+          </li>
+        </ol>
+      </subsection>
+
+      <subsection name="Vote the Release">
+        <ol>
+          <li>Create a <code>VOTE</code> email thread on <a href="mailto:dev@onami.incubator.apache.org">dev@</a>
+          to record votes as replies, e.g.:
+            <pre><![CDATA[To: "Apache Onami Developers List" <de...@onami.incubator.apache.org>
+Subject: [VOTE] Release Apache Onami XXXX major.minor.patch-incubating
+
+Hi,
+
+We solved N issues:
+http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311100&styleName=Html&version=X.Y
+
+There are still a couple of issues left in JIRA:
+http://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&pid=12311100&status=1
+
+SVN source tag
+https://svn.apache.org/repos/asf/incubator/onami/tags/org.apache.onami.xxxx-major.minor.patch-incubating/
+
+Staging repo:
+https://repository.apache.org/content/repositories/orgapacheonami-[YOUR REPOSITORY ID]/
+
+Vote will be open for 72 hours.
+
+[ ] +1, let's get it ruuuumbleeeeee!!!
+[ ] +/-0, fine, but consider to fix few issues before...
+[ ] -1, nope, because... (and please explain why)]]></pre>
+          </li>
+
+          <li>Create a <code>DISCUSS</code> email thread on <code>dev@</code> for any vote questions, e.g.:
+            <pre><![CDATA[To: "Apache Onami Developers List" <de...@onami.incubator.apache.org>
+Subject: [DISCUSS] Apache Onami XXXX major.minor.patch-incubating
+
+Discussion thread for vote on &lt;version&gt; release candidate, with SVN source tag.
+
+For more information on the release process, check out http://www.apache.org/dev/release.html
+
+Some of the things to check before voting are:
+ - does "mvn rat:check" pass on the source
+ - can you build the contents of source-release.zip and svn tag
+ - do all of the staged jars/zips contain the required LICENSE and NOTICE files
+ - are all of the staged jars signed and the signature verifiable
+ - is the signing key in the project's KEYS file and on a public server (i.e. http://www.apache.org/dist/incubator/onami/)]]>
+            </pre>
+          </li>
+
+          <li>Perform a review of the release and cast your vote. For more details on Apache releases see
+          <a href="http://www.apache.org/dev/release.html">http://www.apache.org/dev/release.html</a>.</li>
+
+          <li>A <code>-1</code> vote does not necessarily mean that the vote must be redone, however it is usually a
+          good idea to rollback the release if a <code>-1</code> vote is received
+          (see "Recovering from a vetoed release" below).</li>
+
+          <li>After the vote has been open for at least 72 hours, has at least three +1 PMC votes and no -1 votes, then
+          post the results to the vote thread, replying to the initial email prepending <code>[RESULT]</code> to the
+          original subject and include a list of every binding <code>+1</code>, <code>0</code> and <code>-1</code> vote.
+          <pre><![CDATA[To: "Apache Onami Developers List" <de...@onami.incubator.apache.org>
+Subject: [RESULT] [VOTE] Release Onami XXXX major.minor.patch-incubating
+
+Hi,
+The vote has passed with the following result :
+
++1 (binding):
+
+    Christian Grobmeier (*)
+    Mohammad Nour El-Din (*)
+    Olivier Lamy (*)
+    Jordi Gerona
+    Marco Speranza
+    Simone Tripodi
+
+* IPMC members
+
++1 (non binding):
+
+    Mario Rossi
+    John Doe
+
+I will promote the artifacts to the central repo.]]></pre>
+          </li>
+        </ol>
+      </subsection>
+
+      <subsection name="Finalize the Release">
+        <ol>
+          <li>Promote the staged nexus artifacts:
+            <ol>
+              <li><a href="https://repository.apache.org/index.html">https://repository.apache.org/</a></li>
+              <li><strong>Enterprise --&gt; Staging</strong></li>
+              <li><strong>Staging tab --&gt; Name column --&gt; org.apache.onami</strong></li>
+              <li>Right click on the closed <code>org.apache.onami-XXX</code> staging repo and select <strong>Release</strong>.
+              </li>
+            </ol>
+          </li>
+
+          <li><h1>FIXME</h1>Add the distribution artifacts to the distribution area
+            <source>ssh asf-id@people.apache.org
+cd /x1/www/www.apache.org/dist/incubator/onami/
+
+mv /x1/builds/incubator/onami/sources/* sources/
+mv /x1/builds/incubator/onami/binaries/* binaries/</source>
+          </li>
+
+          <li>Update the
+          <a href="https://issues.apache.org/jira/plugins/servlet/project-config/ONAMI/versions">JIRA versions</a>
+          page to mark the version as <strong>Released</strong>, and set the date to the date that
+          the release was approved. You may also need to make a new release entry for the next release.</li>
+        </ol>
+      </subsection>
+
+      <subsection name="Announce the Release">
+        <p>Make an announcement about the release on the
+        <a href="mailto:user@onami.incubator.apache.org">user@</a>,
+        <a href="mailto:dev@onami.incubator.apache.org">dev@</a>, and
+        <a href="mailto:announce@apache.org">announce@</a> lists as per
+        <a href="http://www.apache.org/foundation/mailinglists.html#foundation-announce]">the Apache Announcement Mailing Lists page</a>
+        </p>
+
+        <pre><![CDATA[From: YOUR_APACHE_USERNAME@apache.org
+To: "ASF Announcements" <an...@apache.org>, "Apache Onami Users List" <us...@onami.incubator.apache.org>
+CC: "Apache Onami Developers List" <de...@onami.incubator.apache.org>
+Subject: [ANNOUNCE] Apache Onami XXXX major.minor.patch-incubating
+
+The Apache Onami Team is pleased to announce the release of Apache Onami XXXX major.minor.patch-incubating.
+
+(put XXXX extension description here)
+
+Release Notes:
+
+(put JIRA release notes here)
+
+Have Fun,
+(committer name), on behalf of the Apache Onami PPMC]]></pre>
+      </subsection>
+    </section>
+
+    <section name="Recovering from a vetoed release">
+      <ol>
+        <li>Reply to the initial vote email prepending <code>[CANCELED]</code> to the original subject.</li>
+        <li>Rollback the version upgrades in trunk by <em>either</em>:
+          <ol>
+            <li>Restore the 0.1-rc1.tar.gz and run <source>mvn release:rollback</source> <em>or</em>
+            manually revert the versions in trunk to the prior version and commit</li>
+          </ol>
+        </li>
+
+        <li>Delete the svn tag created by the <code>release:perform</code> step:
+        <pre>svn rm https://svn.apache.org/repos/asf/incubator/onami/tags/org.apache.onami.xxxx-major.minor.patch-incubating -m "deleting tag from rolled back release"</pre></li>
+
+        <li>Drop the Nexus staging repo:
+          <ol>
+            <li><a href="https://repository.apache.org/index.html">https://repository.apache.org/</a></li>
+            <li><strong>Enterprise --&gt; Staging</strong></li>
+            <li><strong>Staging tab --&gt; Name column --&gt; org.apache.onami</strong></li>
+            <li>Right click on the closed <code>org.apache.onami-XXX</code> staging repo and select <strong>Drop</strong>.
+            </li>
+          </ol>
+        </li>
+
+        <li>Make the required updates that caused the vote to be canceled.</li>
+
+        <li>Spin another release attempt!</li>
+      </ol>
+    </section>
+  </body>
+
+</document>

Propchange: incubator/onami/trunk/site/src/site/xdoc/release-howto.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/onami/trunk/site/src/site/xdoc/release-howto.xml
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: incubator/onami/trunk/site/src/site/xdoc/release-howto.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml