Print
Release process

Release a new version of Loom

It is expected that the Release Manager goes through the following steps when releasing a new version of Loom. Some tasks are here just to make sure everything builds as supposed. As the final release is built on Codeaus' cvs server, it is good to test the build there before. The environment might be slightly different.

Assumptions:

  • The released version is $VERSION, ex. 2.4-rc3
  • The tagged version in cvs is $VERSION_IN_CVS, ex 2_4_RC3
  • The tagged Plugin version in cvs is $PLUGIN_VERSION_IN_CVS, ex 2_4_RC3
  • Release Manager's login name to Codehaus' cvs server is $USERNAME.

Update version

Update source to release version

In project.xml, make a new <version> element if needed and update <currentVersion> with the version being released.

Repeat the same for plugins/project.xml

Check in

Check in the changes.

Checkout

Check out the project to a new directory.

$ cvs -d :ext:$USERNAME@beaver.codehaus.org:/home/projects/loom/scm checkout -Pd loom

Test

$ cd loom; maven; maven build:demos

Tag

Tag Loom:

$ cvs tag LOOM_$VERSION_IN_CVS-tag

Tag Plugins:

$ cd plugins; cvs tag LOOM_PLUGINS_$PLUGIN_VERSION_IN_CVS-tag

Build and Release

Building and releasing is best done from your home directory on beaver.codehaus.org. It is good to test the versions of Ant, Maven and JDK 1.4.X used to build before making the release.

Log in to beaver

Use ssh agent forwarding.

ssh -A $USERNAME@beaver.codehaus.org

Move away Maven's repository

$ mv ./.maven ./.maven-removed

Make a directory

$ mkdir distbuilds;cd distbuilds

Export Loom

$ cvs -d /home/projects/loom/scm export -r LOOM_<VERSION_IN_CVS>-tag -d loom-<version> loom

Example:

$ cvs -d /home/projects/loom/scm export -r LOOM_2_1_RC8-tag -d loom-2.1-rc8 loom

Copy Maven

$ ls -l /usr/local/maven
$ mkdir java
$ cp -r /usr/local/maven-x.y.z/ /home/users/$USERNAME/java/

Build Loom

$ cd ./loom-$VERSION
$ export JAVA_HOME=/usr/local/java
$ export ANT_HOME=/usr/local/ant
$ export MAVEN_HOME=/home/users/$USERNAME/java/maven-x.y.z
$ $MAVEN_HOME/bin/maven
$ $MAVEN_HOME/bin/maven build:demos

Verify that all output is OK.

Make a release

$ $MAVEN_HOME/bin/maven -Dmaven.username=$USERNAME loom:deploy
$ cd site
$ $MAVEN_HOME/bin/maven -Dmaven.username=$USERNAME site:deploy

Verify

Verify that the distributables are correctly uploaded to Codehau's distribution server (http://dist.codehaus.org/loom/). After some four hours, verify that ibiblio is correctly synchronized (http://www.ibiblio.org/maven/loom/).

Have a party

Party!

Update to new working version

Update projec.xml and plugins/project.xml with a new <currentVersion> and check in.

Other relase related tasks

Make a Blog post

Request upload of a new Wrapper to Ibiblio

Assumptions:

  • $VERSION is the wanted Wrapper version

Download

Download the same Wrapper version from two different download sites. Verify that the files are identical.

Extract

Extract wrapper.jar to wrapper-$VERSION.jar and license.txt to LICENSE.txt.

Make a POM

Save the following to project.xml

<project>
<name>Java Service Wrapper</name>
<artifactId>wrapper</artifactId>
<groupId>tanukisoft</groupId>
<currentVersion>$VERSION</currentVersion>
</project>

Copy to beaver

Copy wrapper-$VERSION.jar, license.txt and project.xml to beaver.codehaus.org.

Make a bundle

/usr/local/java/bin/jar cvf wrapper-$VERSION-bundle.jar LICENSE.txt project.xml wrapper-$VERSION.jar

Publish

Copy wrapper-$VERSION-bundle.jar somewhere under your public_html directory.

Make upload request

Go to maven-upload-requests and make a new upload request with the URL to wrapper-$VERSION-bundle.jar as Bundle URL.

Verify

When the bundle has been published, verify that its md5 sums are correct. The bundle will be uploaded to Ibiblio. To calculate md5 sums from the original files, login to beaver and run md5sum <filename>.

Powered by Atlassian Confluence