layout: page title: How To Release
This page is prepared for Mahout committers. You need committer rights to create a new Mahout release.
Start a discussion on mahout-dev about having a release, questions to bring up include:
For 7-14 days prior to the release target date, have a “code freeze” where committers agree to only commit things if they:
mvn clean test
~/.m2/settings.xml
in the <profiles>
section with:<profiles> <profile> <id>mahout_release</id> <properties> <gpg.keyname>1234BEEF</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> </profiles>
<servers>
section in ~/.m2/settings.xml
in order to upload artifacts (as the -Dusername=
-Dpassword=
didn‘t work for gsingers for 0.8, but this did; n.b. it didn’t work for akm for the 0.13 release):<server> <id>apache.releases.https</id> <username>USERNAME</username> <password>PASSWORD</password> </server>
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.
Create the release candidate: mvn -Pmahout-release,apache-release release:prepare release:perform
; to add credentials for source control use mvn -Dusername=myusername -Dpassword='mypassword' -Papache-release release:prepare release:perform
If you have problems authenticating to svn.apache.org, try adding to the command line -Dusername=USERNAME -Dpassword=PASSWORD
If there is an issue first try doing:
mvn -Dmahout-release,apache-release release:rollback
mvn -Dmahout-release,apache-release release:clean
as this will likely save you time and do the right thing. You may also have to rollback the version numbers in the POM files.mvn -DpreparationGoals="clean compile" release:prepare release:perform
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.
Call a VOTE on dev@mahout.apache.org. Votes require 3 days before passing. See Apache [release policy|http://www.apache.org/foundation/voting.html#ReleaseVotes] for more info.
If there's a problem, you need to unwind the release and start all over.
mvn -Pmahout-release,apache-release versions:set -DnewVersion=PREVIOUS_SNAPSHOT mvn -Pmahout-release,apache-release versions:commit git commit git push --delete apache <tagname> (deletes the remote tag) git tag -d tagname (deletes the local tag)
See also:
http://www.sonatype.com/books/nexus-book/reference/staging-sect-deployment.html