mahout-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [CONF] Apache Lucene Mahout: How to release (page edited)
Date Fri, 26 Sep 2008 14:08:00 GMT
How to release (MAHOUT) edited by Grant Ingersoll


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

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"
 * Any ["Fixed" Jira issues missing a "Fix Version" |]
that should be updated to indicate that there were fixed in this upcoming version?
 * Does any documentation needs an updated?  Any necessary notes on upgrading for CHANGES.txt?
 * 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, ideally using both Ant and Maven.
 # 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" |]
that should be marked as fixed in this release.

h2. Making a release
 # Check if documentation needs an update, update release date in CHANGES.txt and add any
necessary notes on upgrading.
 # Update news in {{src/site/src/documentation/content/xdocs/index.xml}} and for main
site stored at The second change may require
additional rights or  patch submitted to the Lucene PMC
 # 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 the first release in a series (i.e. relase X.Y.0):
    ## create a branch for the series:
{noformat}svn copy \ -m "Starting Mahout X.Y
branch." {noformat} 
    ## Create a new distribution directory: {{}}
    ## Check out the branch with: 		{{svn co
           '''Note:''' at the moment releases need to be done on a unix box or in a cygwin
environment with unix linefeeds, because fixcrlf is only done on the sources in the zip artifact

    # Update the version numbers in build.xml:
      ## {{specversion}} should be set to `X.Y.M.$\{dateversion\}`, where X.Y.M is the release
being made.
      ## {{version}} should be set to `X.Y.N-dev`, where N is one greater than the release
being made.
    # Compile the code and run unit tests.
		 {{ant -Dversion=X.Y.M -Dspecversion=X.Y.M clean test}}
    # Regenerate the "site" docs per ["Website Update HOWTO"] so the documentation included
with this release will reflect the correct version number (at the moment, this is specific
to the tutorial)
    # Commit the build.xml and documentation changes from the previous few steps.
    # Build the release.
		 {{ant -Dversion=X.Y.M -Dspecversion=X.Y.M package}}
    # Check that release tgz/zip files looks ok - e.g. uncompress them, run example, work
through the steps of the tutorial, ensure that the javadocs are readable, etc... 
    # Sign the release (see [Step-By-Step Guide to Mirroring Releases |]
for more information).
                {{gpg --armor --output dist/apache-mahout-X.Y.M.tgz.asc --detach-sig dist/apache-mahout-X.Y.M.tgz}}
	        {{gpg --armor --output dist/ --detach-sig dist/}}
    # *TODO* document stuff here about posting release candidates for people to test out
    # Tag the release:
{noformat}svn copy \ -m "Mahout X.Y.M release."{noformat}

    # Copy release files to the distribution directory.
                {{scp -p dist/apache-mahout-X.Y.M.tar.gz*}}
                {{scp -p dist/*}}
    # Copy the Maven artifacts to the distribution directory (follow the existing directory
structure), to have them pushed to the central Maven repositories:
    # Ensure that the most current keys file is on the distribution site:
           {{scp -p KEYS.txt}}
    # Start a new section in CHANGES.txt
    # Wait 24 hours for release to propagate to mirrors.
    # Deploy new Mahout site.
    # Deploy new main Lucene site.
    # Update Javadoc in {{}}.
           NOTE: skip this for now, as this javadoc is currently updated automatically from
the nightly build
    # Send announcements to the user and developer lists.

h2. Post Release
h3. Versioning
 * Ant build.xml files
 * Maven pom.xml files 
 * 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

h1. Related Resources


h1. :TODO: Things To Cleanup in this document


 * more info about the process (ie: stage the release candidate on, send
email to mahout-dev seeking feedback, etc...) 
 * more specifics about things to test before starting or after packaging (RAT, run scripts
against example, etc...)
 * include info about [Voting |]

This message is automatically generated by Confluence

Unsubscribe or edit your notifications preferences

If you think it was sent incorrectly contact one of the administrators

If you want more information on Confluence, or have a bug to report see

View raw message