mahout-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
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
      Page: http://cwiki.apache.org/confluence/display/MAHOUT/How+to+release
   Changes: http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=95353&originalVersion=5&revisedVersion=6






Content:
---------------------------------------------------------------------

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?  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" | https://issues.apache.org/jira/secure/IssueNavigator.jspa?mode=hide&requestId=12312765]
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 lucene.apache.org
site stored at https://svn.apache.org/repos/asf/lucene/site/. 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 https://svn.apache.org/repos/asf/lucene/mahout/trunk \
  https://svn.apache.org/repos/asf/lucene/mahout/branches/branch-X.Y -m "Starting Mahout X.Y
branch." {noformat} 
    ## Create a new distribution directory: {{people.apache.org:/www/www.apache.org/dist/lucene/mahout/X.Y}}
    ## Check out the branch with: 		{{svn co https://svn.apache.org/repos/asf/lucene/mahout/branches/branch-X.Y
\}}
           '''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 | http://www.apache.org/dev/mirror-step-by-step.html?Step-By-Step]
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/apache-mahout-X.Y.M.zip.asc --detach-sig dist/apache-mahout-X.Y.M.zip}}
    # *TODO* document stuff here about posting release candidates for people to test out
    # Tag the release:
{noformat}svn copy https://svn.apache.org/repos/asf/lucene/mahout/branches/branch-X.Y \
   https://svn.apache.org/repos/asf/lucene/mahout/tags/release-X.Y.M -m "Mahout X.Y.M release."{noformat}

    # Copy release files to the distribution directory.
                {{scp -p dist/apache-mahout-X.Y.M.tar.gz* people.apache.org:/www/www.apache.org/dist/lucene/mahout/X.Y}}
                {{scp -p dist/apache-mahout-X.Y.M.zip* people.apache.org:/www/www.apache.org/dist/lucene/mahout/X.Y}}
    # Copy the Maven artifacts to the distribution directory (follow the existing directory
structure), to have them pushed to the central Maven repositories: people.apache.org:/www/people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/mahout
    # Ensure that the most current keys file is on the distribution site:
           {{scp -p KEYS.txt people.apache.org:/www/people.apache.org/dist/lucene/mahout/}}
    # 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 {{people.apache.org:/www/lucene.apache.org/mahout/docs/api}}.
           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

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

h1. :TODO: Things To Cleanup in this document

*TODO*

 * more info about the process (ie: stage the release candidate on people.apache.org, 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 | http://www.apache.org/foundation/voting.html#ReleaseVotes]


---------------------------------------------------------------------
CONFLUENCE INFORMATION
This message is automatically generated by Confluence

Unsubscribe or edit your notifications preferences
   http://cwiki.apache.org/confluence/users/viewnotifications.action

If you think it was sent incorrectly contact one of the administrators
   http://cwiki.apache.org/confluence/administrators.action

If you want more information on Confluence, or have a bug to report see
   http://www.atlassian.com/software/confluence



Mime
View raw message