You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

This page describes how to make a release of Whirr. It is based on a similar guide for Tapestry (thanks to the Tapestry team for sharing this!).

Preparation

Check out the latest trunk.

Bumping the Version Number

The version number in trunk ends in -SNAPSHOT, but we need to remove this for the release. For example, 0.1.0-SNAPSHOT needs to be changed to 0.1.0. Use the supplied Ruby script (modified from the one in Tapestry) to do this. For example:

support/update-versions 0.1.0

Building

Build the release. You should run all the unit and integration tests (which means you should have cloud credentials to run on a cloud provider):

mvn clean install -DargLine='-Dwhirr.test.provider=<cloud-provider> -Dwhirr.test.identity=<cloud-provider-user> -Dwhirr.test.credential=<cloud-provider-secret-key>'

Add The Next Release to JIRA

Add the next version number (e.g. 0.2.0 after 0.1.0) to JIRA using this link: https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12311110.

In JIRA, you should also Release the version you are releasing now.

Generate the Release Notes

JIRA has the ability to generate release notes automatically (this is why it is so important to keep the fix version number accurate).

https://issues.apache.org/jira/secure/ConfigureReleaseNote.jspa?projectId=12311110

Manually check this list for accuracy! I've repeatedly seen closed bugs that were not fixed (i.e., duplicate) marked with a fix version, so that they incorrectly show up in this list. Find those, edit them to remove the fix release (only actually fixed bugs should have a fix release) and re-run the report.

Select the correct version, in HTML format.

Paste the notes to the top of site/src/site/xdoc/release-notes.xml

Wrap the title ("Release Notes - Whirr - Version 0.1.0") inside an <h1> element.

Build and Deploy Artifacts

The following command deploys the signed artifacts (you will need to enter a GPG passphrase) to the staging repo at http://people.apache.org/~tomwhite/whirr-repo/ (TODO: update to use official snapshot repo described at http://www.apache.org/dev/publishing-maven-artifacts.html).

mvn deploy -Pdeploy

Once the vote on the release is approved, the files will be moved from there to the official Apache Maven repo.

Build and Deploy Distributions

We build a source distribution using the Maven assembly plugin:

mvn assembly:assembly

Maven doesn't generate checksums or signatures for these artifacts (TODO: use Maven to do this as described at http://stackoverflow.com/questions/2244344/deploying-assembly-package-with-maven-release-plugin, or at least figure out how to generate MD5 checksums), so we have to do this manually with the following:

for i in target/whirr-*-src.tar.gz; do
  echo $i;
  gpg --armor --detach-sig $i;
  gpg --print-md MD5 $i > $i.md5;
  gpg --print-md SHA1 $i > $i.sha1;
done

Copy the artifacts to the release directory on people.apache.org:

scp target/whirr-*-src.tar* people.apache.org:public_html/whirr-releases

Cleaning up

Maven generates spurious checksums for .asc files, so we need to delete them. Log in to people.apache.org, and type

find ~/public_html/whirr-snapshot-repo -name \*.asc.\* | xargs rm

Commit and Tag

Commit changes to subversion, and tag:

svn copy -rHEAD https://svn.apache.org/repos/asf/incubator/whirr/trunk https://svn.apache.org/repos/asf/incubator/whirr/tags/release-X.Y.Z

Run the Vote

Roll Out

Assuming the vote passes, the release can be rolled out as follows:

Build and Deploy Site

cd site
mvn site site:deploy

TODO: javadoc

Move Artifacts into Place

TODO

Wait 24 Hours

It takes up to 24 hours for all the mirrors to sync, to don't go announcing the new release just yet.

Announce the Release

TODO: update website

Advance the Version Numbers

  • No labels