mahout-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Mahout > How To Release
Date Tue, 26 Oct 2010 12:02:00 GMT
Space: Apache Mahout (https://cwiki.apache.org/confluence/display/MAHOUT)
Page: How To Release (https://cwiki.apache.org/confluence/display/MAHOUT/How+To+Release)

Change Comment:
---------------------------------------------------------------------
Fix details of maven release process.

Edited by Benson Margulies:
---------------------------------------------------------------------
This wiki page is under contruction, currently more or less a modified clone of the Solr HowToRelase
page. More to come soon!

*This page is prepared for Mahout committers. You need committer rights to create a new Mahout
release.*

h1. Release Planning

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

 * Any [unresolved Jira issues with the upcoming version number listed as the "Fix Version"
| https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&&pid=12310751&fixfor=12312976&resolution=-1&sorter/field=issuekey&sorter/order=DESC]
 * Any ["Fixed" Jira issues missing a "Fix Version" | https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&&pid=12310751&fixfor=-1&resolution=1&sorter/field=issuekey&sorter/order=DESC]
that should be updated to indicate that there were fixed in this upcoming version?
 * Does any documentation needs an updated?
 * Who is going to be the "release engineer"?
 * 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.)


h1. Code Freeze

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

h1. Steps For Release Engineer

h2. Before building release
 # Check that all tests pass after a clean compile: mvn clean test
 # Double Check that there are no remaining unresolved Jira issues with the upcoming version
number listed as the "Fix" version
 # Double Check that there are no ["Fixed" Jira issues missing a "Fix Version" | https://issues.apache.org/jira/secure/IssueNavigator.jspa?mode=hide&requestId=12312765]
that should be marked as fixed in this release.
 # Publish any prev. unpublished Third Party Deps: [Thirdparty Dependencies]

h2. Making a release
 # Check if documentation needs an update
 # Update news in {{src/site/new_website/index.html}}
 # Commit these changes.
           '''Note:''' 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.
 # If this is your first release, add your key to the KEYS file. The KEYS file is located
in Subversion at https://svn.apache.org/repos/asf/mahout/trunk/KEYS and copy it to the release
directory. Make sure you commit your change.  See http://www.apache.org/dev/release-signing.html.
 # Ensure you have set up standard Apache committer settings in
 ~/.m2/settings.xml as per [this page|http://maven.apache.org/developers/committer-settings.html].
 # Add a profile to your ~/.m2/settings.xml in the <profiles> section with:
 {code}
<profile>
      <id>mahout_release</id>
      <properties>
        <gpg.keyname>YOUR PGP KEY NAME</gpg.keyname>
        <gpg.passphrase>YOUR SIGNING PASSCODE HERE</gpg.passphrase>
        <deploy.altRepository>mahout.releases::default:: https://repository.apache.org/service/local/staging/deploy/maven2/</deploy.altRepository>
        <username>USERNAME</username>
        <deploy.url> https://repository.apache.org/service/local/staging/deploy/maven2/</deploy.url>
      </properties>
    </profile>
{code}
 # Set environment variable MAVEN_OPTS to -Xmx1024m to ensure the tests can run
 # Create the release candidate:
{panel}
    {{mvn -Peverything release:prepare release:perform}}
{panel}

      If you have problems authenticating to svn.apache.org, try adding to the command line
{{-Dusername=[user] -Dpassword=[password]}}
  
      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*
    # Review the artifacts, etc. on the Apache Repository (using Sonatype's Nexus application)
site: https://repository.apache.org/.
       You will need to login using your ASF SVN credentials and then browse to the staging
area.
    # 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.
       ## Login into Nexus
       ## Click the Repositories link in the left hand menu
       ## Click the "User Managed Repositories" in the navbar just below the "Welcome" tab
       ## Choose "Nexus Managed Repositories" instead of "User Managed"
       ## Find and click the Mahout staged one that was just uploaded by the release:perform
target
       ## In the middle frame, select Mahout and right click and choose Close.  See http://maven.apache.org/developers/release/releasing.html
for a picture
       ## Copy the "Repository URL" link to your email
    # Ask others on mahout-dev to review the artifacts.
    # Call a VOTE on mahout-dev@apache.org.  Votes require 3 days before passing.  See Apache
[release policy|http://www.apache.org/foundation/voting.html#ReleaseVotes] for more info.
    # If the vote passes, then promote the artifacts in the Nexus Repository to the appropriate
mirrors and repositories.
    # If there's a problem, you need to unwind the release and start all over.
    {panel}
    mvn -Peverything versions:set -DnewVersion=PREVIOUS_SNAPSHOT
    mvn -Peverything versions:commit
    svn commit 
    svn rm https://svn.apache.org/repos/asf/mahout/tags/mahout-VERSION
    {panel}  
    # Copy the Assemblies (tar.gz, zip, tar.bz2) to the ASF mirrors at: people.apache.org:/www/www.apache.org/dist/mahout/.
See [Guide To Distributing Existing Releases Through The ASF Mirrors|http://jakarta.apache.org/site/convert-to-mirror.html?Step-By-Step]
and the links that are there.
    # Wait 24 hours for release to propagate to mirrors.
    # Deploy new Mahout site.
    # Update Javadoc in {{people.apache.org:/www/mahout.apache.org/docs/api}}.
           NOTE: skip this for now, as this javadoc is currently updated automatically from
the nightly build
    # 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.
    # Send announcements to the user and developer lists.

See also:
 * http://maven.apache.org/developers/release/releasing.html
 * http://www.sonatype.com/books/nexus-book/reference/staging-sect-deployment.html
 * http://www.sonatype.com/books/nexus-book/reference/index.html

h2. Post Release
h3. Versioning
 * Create the next version in Jira (if it doesn't already exist)   
 * Mark the version as "released" in Jira (noting the release date)

h3. Documentation
 * Change wiki to match current best practices (remove/change deprecations, etc)

h3. Publicity
 * update freshmeat
 * !TheServerSide blurb
 * blog away
 * Update MLOSS entry: http://mloss.org/revision/view/387/.  See Grant for details.

h1. Related Resources

 * http://www.apache.org/dev/#releases
 * http://www.apache.org/dev/#mirror

h1. :TODO: Things To Cleanup in this document

*TODO*
 
 * more specifics about things to test before starting or after packaging (RAT, run scripts
against example, etc...)
 * include info about [Voting | http://www.apache.org/foundation/voting.html#ReleaseVotes]


Change your notification preferences: https://cwiki.apache.org/confluence/users/viewnotifications.action
   

Mime
View raw message