You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by co...@apache.org on 2011/05/17 17:35:00 UTC
[CONF] Apache Mahout > How To Release
Space: Apache Mahout (https://cwiki.apache.org/confluence/display/MAHOUT)
Page: How To Release (https://cwiki.apache.org/confluence/display/MAHOUT/How+To+Release)
Edited by Sean Owen:
---------------------------------------------------------------------
*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 for the upcoming release | https://issues.apache.org/jira/secure/IssueNavigator!executeAdvanced.jspa?jqlQuery=project+%3D+MAHOUT+AND+resolution+%3D+Unresolved+AND+fixVersion+%3D+%220.6%22&runQuery=true&clear=true]
* Any [Resolved or Closed JIRA issues missing a "Fix Version" | 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&runQuery=true&clear=true] that should be marked as fixed in this release?
* Does any documentation need an update?
* 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
# Check that there are no remaining unresolved Jira issues with the upcoming version number listed as the "Fix" version
# 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