[CONF] Apache Camel: Release Guide (page edited)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[CONF] Apache Camel: Release Guide (page edited)

Dhiraj Bokde (Confluence)

Release Guide has been edited by James Strachan (Nov 03, 2008).

(View changes)

Content:

How to create and announce a Camel release.

Maven 2 Setup

Before you deploy anything to the maven repository using Maven 2, you should configure your ~/.m2/settings.xml file
so that the file permissions of the deployed artifacts are group writable. If you do not do this, other developers will not able to overwrite your SNAPSHOT releases with newer versions.

<settings>
  ...
  <servers>

    <server>
      <id>apache-repo</id>
      <username>chirino</username>
      <directoryPermissions>775</directoryPermissions>
      <filePermissions>664</filePermissions>
    </server>
    <server>
      <id>apache-snapshots</id>
      <username>chirino</username>
      <directoryPermissions>775</directoryPermissions>
      <filePermissions>664</filePermissions>
    </server>
    <server>
      <id>apache-website</id>
      <username>chirino</username>
      <directoryPermissions>775</directoryPermissions>
      <filePermissions>664</filePermissions>
    </server>

  </servers>
  ...
</settings>

Creating the Camel Release

  • Prepare env and directory structure
    export PROJ=apache-camel
    export PROJVER=<x.y.z>
    mkdir  $HOME/$PROJ-$PROJVER
    mkdir  $HOME/$PROJ-$PROJVER/maven2
    mkdir  $HOME/$PROJ-$PROJVER/maven
    mkdir  $HOME/$PROJ-$PROJVER/site
  • Grab the latest source from SVN
    svn co https://svn.apache.org/repos/asf/activemq/camel/trunk camel
    cd camel
  • Change the version number in:
  1. pom.xml - in the project root and all sub-projects
  2. the value of <camel-version> property in the root pom.xml
  3. Note: The command below will do the trick on Linux (replace for the appropriate version).
    find . -name pom.xml | grep -v .svn | xargs sed -i -e s/x.y-SNAPSHOT/$PROJVER/g

    If you do this on MacOSX, you will need to:

    find . -name pom.xml | grep -v .svn | xargs sed -i "" -e s/x.y-SNAPSHOT/$PROJVER/g
  • Let Maven build, test, package, and deploy the binaries
    mvn clean source:jar deploy -Drelease-repo-url=file:$HOME/$PROJ-$PROJVER/maven2 -Dm1-repo-url=file:$HOME/$PROJ-$PROJVER/maven -Prelease,enable-schemagen
  • Tag the release using your local workspace to a new CAMEL_X_Y label
    svn copy ../camel https://svn.apache.org/repos/asf/activemq/camel/tags/camel-x.y.z -m "Camel x.y.z Release"
  • Check that the binaries look fine.

Testing the Camel Release Candidate

When folks need to test out a release candidate, the jars will not have been uploaded to the Maven repo. This means that the example programs which use Maven will not automatically work.

So whenever running the Examples you need to append the following command line argument...

mvn camel:run -DremoteRepo=http://people.apache.org/~chirino/apache-camel-1.2.0-RC1/maven2

Assuming that the release candidate is deployed to *http://people.apache.org/~chirino/apache-camel-1.2.0-RC1/maven2

Announcing the Camel Release

  1. Perform a release in JIRA and create a new release version in JIRA
  2. Create a download page for the release in the WIKI similar like the Camel 1.4.0 Release. There could be already a release notes page in the In Progress folder - if so just edit it and change its parent to be the Download page. Otherwise add a new child page in Download and update the Download page to show the latest release version.
  3. Update the Download] page to refer to the latest release distributions (search & replace the version numbers mostly
  4. Update the Xml Reference page with a link to the HTML and XSD
  5. Mail the [hidden email] & [hidden email] lists
  6. Post a news entry on the WIKI
  7. perform a full auto-export plugin export of the wiki to static html to work around the bug with autoexport plugin not updating the index page when you post the news item
  8. Have a beer!