mahout-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Grant Ingersoll (Confluence)" <conflue...@apache.org>
Subject [CONF] Apache Mahout > How To Release
Date Thu, 25 Jul 2013 14:47:01 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/en/2176/1/186/_/styles/combined.css?spaceKey=MAHOUT&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/MAHOUT/How+To+Release">How
To Release</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~gsingers">Grant
Ingersoll</a>
    </h4>
        <br/>
                         <h4>Changes (1)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >    # Clean up JIRA: Bulk close all
X.Y JIRA issues.  Mark the Version number as being released (see Manage Versions.)  Add the
next version (X.Y+1) if necessary. <br>    # Update release version on http://mahout.apache.org/
and http://en.wikipedia.org/wiki/Apache_Mahout <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">##
https://cwiki.apache.org/confluence/display/MAHOUT/How+To+Update+The+Website <br></td></tr>
            <tr><td class="diff-unchanged" >    # Send announcements to the user
and developer lists. <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <p><b>This page is prepared for Mahout committers. You need committer
rights to create a new Mahout release.</b></p>

<h1><a name="HowToRelease-ReleasePlanning"></a>Release Planning</h1>

<p>Start a discussion on mahout-dev about having a release, questions to bring up include:</p>

<ul>
	<li>Any <a href="https://issues.apache.org/jira/secure/IssueNavigator!executeAdvanced.jspa?jqlQuery=project+%3D+MAHOUT+AND+resolution+%3D+Unresolved+AND+fixVersion+%3D+%220.6%22&amp;runQuery=true&amp;clear=true"
class="external-link" rel="nofollow">Unresolved JIRA issues for the upcoming release </a></li>
	<li>Any <a href="https://issues.apache.org/jira/secure/IssueNavigator!executeAdvanced.jspa?jqlQuery=project+%3D+MAHOUT+AND+%28status+%3D+Resolved+OR+status+%3D+Closed%29+AND+fixVersion+IS+NULL+AND+resolution+%3D+Fixed&amp;runQuery=true&amp;clear=true"
class="external-link" rel="nofollow">Resolved or Closed JIRA issues missing a "Fix Version"
</a> that should be marked as fixed in this release?</li>
	<li>Does any documentation need an update?</li>
	<li>Who is going to be the "release engineer"?</li>
	<li>What day should be targeted for the release ?  Leave buffer time for a code freeze
and release candidate testing; make sure at least a few people commit to having time to help
test the release candidates around the target date.</li>
</ul>



<h1><a name="HowToRelease-CodeFreeze"></a>Code Freeze</h1>

<p>For 7-14 days prior to the release target date, have a "code freeze" where committers
agree to only commit things if they:</p>
<ul>
	<li>Are documentation improvements (including fixes to eliminate Javadoc warnings)</li>
	<li>Are new test cases that improve test coverage</li>
	<li>Are bug fixes found because of improved test coverage</li>
	<li>Are new tests and bug fixes for new bugs encountered by manually testing</li>
</ul>


<h1><a name="HowToRelease-StepsForReleaseEngineer"></a>Steps For Release
Engineer</h1>

<h2><a name="HowToRelease-Beforebuildingrelease"></a>Before building release</h2>
<ol>
	<li>Check that all tests pass after a clean compile: mvn clean test</li>
	<li>Check that there are no remaining unresolved Jira issues with the upcoming version
number listed as the "Fix" version</li>
	<li>Publish any prev. unpublished Third Party Deps: <a href="/confluence/display/MAHOUT/Thirdparty+Dependencies"
title="Thirdparty Dependencies">Thirdparty Dependencies</a></li>
</ol>


<h2><a name="HowToRelease-PreviewingtheArtifacts"></a>Previewing the Artifacts</h2>
<ol>
	<li>To build the artifacts:
	<ol>
		<li>mvn -Prelease package</li>
	</ol>
	</li>
</ol>


<h2><a name="HowToRelease-Makingarelease"></a>Making a release</h2>
<ol>
	<li>Check if documentation needs an update</li>
	<li>Update the web site's news by updating a working copy of the SVN directory at <a
href="https://svn.apache.org/repos/asf/mahout/site/new_website" class="external-link" rel="nofollow">https://svn.apache.org/repos/asf/mahout/site/new_website</a></li>
	<li>Commit these changes. It is important to do this prior to the build so that it
is reflected in the copy of the website included with the release for documentation purposes.</li>
	<li>If this is your first release, add your key to the KEYS file. The KEYS file is
located in Subversion at <a href="https://svn.apache.org/repos/asf/mahout/trunk/distribution/KEYS"
class="external-link" rel="nofollow">https://svn.apache.org/repos/asf/mahout/trunk/distribution/KEYS</a>
and copy it to the release directory. Make sure you commit your change.  See <a href="http://www.apache.org/dev/release-signing.html"
class="external-link" rel="nofollow">http://www.apache.org/dev/release-signing.html</a>.</li>
	<li>Ensure you have set up standard Apache committer settings in<br/>
 ~/.m2/settings.xml as per <a href="http://maven.apache.org/developers/committer-settings.html"
class="external-link" rel="nofollow">this page</a>.</li>
	<li>Add a profile to your ~/.m2/settings.xml in the &lt;profiles&gt; section
with:
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="theme: Default; brush: java; gutter: false" style="font-size:12px; font-family:
ConfluenceInstalledFont,monospace;">
  &lt;profiles&gt;
    &lt;profile&gt;
      &lt;id&gt;mahout_release&lt;/id&gt;
      &lt;properties&gt;
        &lt;gpg.keyname&gt;YOUR PGP KEY NAME&lt;/gpg.keyname&gt;
        &lt;gpg.passphrase&gt;YOUR SIGNING PASSCODE HERE&lt;/gpg.passphrase&gt;
        &lt;deploy.altRepository&gt;mahout.releases::default::https://repository.apache.org/service/local/staging/deploy/maven2/&lt;/deploy.altRepository&gt;
        &lt;username&gt;USERNAME&lt;/username&gt;
        &lt;deploy.url&gt;https://repository.apache.org/service/local/staging/deploy/maven2/&lt;/deploy.url&gt;
      &lt;/properties&gt;
    &lt;/profile&gt;
  &lt;/profiles&gt;
</pre>
</div></div></li>
	<li>You may also need to add the following to the &lt;servers&gt; section in
~/.m2/settings.xml in order to upload artifacts (as the -Dusername= -Dpassword= didn't work
for Grant for 0.8, but this did):
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="theme: Default; brush: java; gutter: false" style="font-size:12px; font-family:
ConfluenceInstalledFont,monospace;">
&lt;server&gt;
  &lt;id&gt;apache.releases.https&lt;/id&gt;
  &lt;username&gt;USERNAME&lt;/username&gt;
  &lt;password&gt;PASSWORD&lt;/password&gt;
&lt;/server&gt;
</pre>
</div></div></li>
	<li>Set environment variable MAVEN_OPTS to -Xmx1024m to ensure the tests can run</li>
	<li>export _JAVA_OPTIONS="-Xmx1g"</li>
	<li>If you are outside the US, then svn.apache.org may not resolve to the main US-based
Subversion servers. (Compare the IP address you get for svn.apache.org with svn.us.apache.org
to see if they are different.) This will cause problems during the release since it will create
a revision and then immediately access, but, there is a replication lag of perhaps a minute
to the non-US servers. To temporarily force using the US-based server, edit your equivalent
of /etc/hosts and map the IP address of svn.us.apache.org to svn.apache.org.</li>
	<li>Create the release candidate: <tt>mvn -Pmahout_release release:prepare release:perform</tt>.
If you have problems authenticating to svn.apache.org, try adding to the command line <tt>-Dusername=[user]
-Dpassword=[password]</tt>. If it screws up, do not clean or release:clean without first
trying to do: release:rollback.  This will likely save you time and do the right thing.  If
it doesn't work, then do clean and release:clean and also delete the tag from svn, if it was
created. You may also have to rollback the version numbers in the POM files.<br/>
( If you want to skip test cases while rebuilding, use mvn -DpreparationGoals="clean compile"
release:prepare release:perform)</li>
	<li>Review the artifacts, etc. on the Apache Repository (using Sonatype's Nexus application)
site: <a href="https://repository.apache.org/" class="external-link" rel="nofollow">https://repository.apache.org/</a>.<br/>
       You will need to login using your ASF SVN credentials and then browse to the staging
area.</li>
	<li>Once you have reviewed the artifacts, you will need to "Close" out the staging
area under Nexus, which then makes the artifacts available for others to see.
	<ol>
		<li>Log in to Nexus</li>
		<li>Click the Staging Repositories link in the left hand menu</li>
		<li>Click the Mahout staged one that was just uploaded by the release:perform target</li>
		<li>Click Close in the toolbar. See <a href="https://docs.sonatype.org/display/Repository/Closing+a+Staging+Repository"
class="external-link" rel="nofollow">https://docs.sonatype.org/display/Repository/Closing+a+Staging+Repository</a>
for a picture</li>
		<li>Copy the "Repository URL" link to your email; it should be like <a href="https://repository.apache.org/content/repositories/orgapachemahout-024/"
class="external-link" rel="nofollow">https://repository.apache.org/content/repositories/orgapachemahout-024/</a></li>
	</ol>
	</li>
	<li>Call a VOTE on dev@mahout.apache.org.  Votes require 3 days before passing.  See
Apache <a href="http://www.apache.org/foundation/voting.html#ReleaseVotes" class="external-link"
rel="nofollow">release policy</a> for more info.</li>
	<li>If there's a problem, you need to unwind the release and start all over.
    <div class="panel" style="border-width: 1px;"><div class="panelContent">
<p>    mvn -Pmahout_release versions:set -DnewVersion=PREVIOUS_SNAPSHOT<br/>
    mvn -Pmahout_release versions:commit<br/>
    svn commit <br/>
    svn rm <a href="https://svn.apache.org/repos/asf/mahout/tags/mahout-VERSION" class="external-link"
rel="nofollow">https://svn.apache.org/repos/asf/mahout/tags/mahout-VERSION</a></p>
</div></div>  </li>
	<li>Release the artifact in the Nexus Repository in the same way you Closed it earlier.</li>
	<li>Add your key to the KEYS file at <a href="http://www.apache.org/dist/mahout/"
class="external-link" rel="nofollow">http://www.apache.org/dist/mahout/</a>&lt;version&gt;/</li>
	<li>Copy the assemblies and their supporting files (tar.gz, zip, tar.bz2, plus .asc,
.md5, .pom, .sha1 files) to the ASF mirrors at: people.apache.org:/www/www.apache.org/dist/mahout/&lt;version&gt;/.
You should make sure the group "mahout" owns the files and that they are read only (<del>r</del><del>r</del><del>r</del>-
in UNIX-speak). See <a href="http://jakarta.apache.org/site/convert-to-mirror.html?Step-By-Step"
class="external-link" rel="nofollow">Guide To Distributing Existing Releases Through The
ASF Mirrors</a> and the links that are there.
	<ol>
		<li>cd /www/www.apache.org/dist/mahout</li>
		<li>mkdir &lt;VERSION&gt;</li>
		<li>cd &lt;VERSION&gt;</li>
		<li>wget -e robots=off --no-check-certificate -np -r <a href="https://repository.apache.org/content/groups/public/org/apache/mahout/mahout-distribution/"
class="external-link" rel="nofollow">https://repository.apache.org/content/groups/public/org/apache/mahout/mahout-distribution/</a>&lt;VERSION&gt;/</li>
		<li>mv repository.apache.org/content/groups/public/org/apache/mahout/mahout-distribution/0.8/*
.</li>
		<li>rm -rf repository.apache.org/</li>
		<li>rm index.html</li>
	</ol>
	</li>
	<li>Wait 24 hours for release to propagate to mirrors.</li>
	<li>Clean up JIRA: Bulk close all X.Y JIRA issues.  Mark the Version number as being
released (see Manage Versions.)  Add the next version (X.Y+1) if necessary.</li>
	<li>Update release version on <a href="http://mahout.apache.org/" class="external-link"
rel="nofollow">http://mahout.apache.org/</a> and <a href="http://en.wikipedia.org/wiki/Apache_Mahout"
class="external-link" rel="nofollow">http://en.wikipedia.org/wiki/Apache_Mahout</a>
	<ol>
		<li><a href="https://cwiki.apache.org/confluence/display/MAHOUT/How+To+Update+The+Website"
class="external-link" rel="nofollow">https://cwiki.apache.org/confluence/display/MAHOUT/How+To+Update+The+Website</a></li>
	</ol>
	</li>
	<li>Send announcements to the user and developer lists.</li>
</ol>


<p>See also:</p>
<ul>
	<li><a href="http://maven.apache.org/developers/release/releasing.html" class="external-link"
rel="nofollow">http://maven.apache.org/developers/release/releasing.html</a></li>
	<li><a href="http://www.sonatype.com/books/nexus-book/reference/staging-sect-deployment.html"
class="external-link" rel="nofollow">http://www.sonatype.com/books/nexus-book/reference/staging-sect-deployment.html</a></li>
	<li><a href="http://www.sonatype.com/books/nexus-book/reference/index.html" class="external-link"
rel="nofollow">http://www.sonatype.com/books/nexus-book/reference/index.html</a></li>
</ul>


<h2><a name="HowToRelease-PostRelease"></a>Post Release</h2>
<h3><a name="HowToRelease-Versioning"></a>Versioning</h3>
<ul>
	<li>Create the next version in JIRA (if it doesn't already exist)</li>
	<li>Mark the version as "released" in JIRA (noting the release date)</li>
</ul>


<h3><a name="HowToRelease-Documentation"></a>Documentation</h3>
<ul>
	<li>Change wiki to match current best practices (remove/change deprecations, etc)</li>
</ul>


<h3><a name="HowToRelease-Publicity"></a>Publicity</h3>
<ul>
	<li>update freshmeat</li>
	<li>!TheServerSide blurb</li>
	<li>blog away</li>
	<li>Update MLOSS entry: <a href="http://mloss.org/revision/view/387/" class="external-link"
rel="nofollow">http://mloss.org/revision/view/387/</a>.  See Grant for details.</li>
</ul>


<h1><a name="HowToRelease-RelatedResources"></a>Related Resources</h1>

<ul>
	<li><a href="http://www.apache.org/dev/#releases" class="external-link" rel="nofollow">http://www.apache.org/dev/#releases</a></li>
	<li><a href="http://www.apache.org/dev/#mirror" class="external-link" rel="nofollow">http://www.apache.org/dev/#mirror</a></li>
</ul>


<h1><a name="HowToRelease-%3ATODO%3AThingsToCleanupinthisdocument"></a>:TODO:
Things To Cleanup in this document</h1>

<p><b>TODO</b></p>

<ul>
	<li>more specifics about things to test before starting or after packaging (RAT, run
scripts against example, etc...)</li>
	<li>include info about <a href="http://www.apache.org/foundation/voting.html#ReleaseVotes"
class="external-link" rel="nofollow">Voting </a></li>
</ul>

    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;" class="grey">
                        <a href="https://cwiki.apache.org/confluence/users/removespacenotification.action?spaceKey=MAHOUT">Stop
watching space</a>
            <span style="padding: 0px 5px;">|</span>
                <a href="https://cwiki.apache.org/confluence/users/editmyemailsettings.action">Change
email notification preferences</a>
</div>
        <a href="https://cwiki.apache.org/confluence/display/MAHOUT/How+To+Release">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=95353&revisedVersion=56&originalVersion=55">View
Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/display/MAHOUT/How+To+Release?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message