Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

How to create and announce a Camel release.

This release guide is based on General guide for releasing Maven-based project at Apache , so be sure to check it out before continuing and meet all prerequisites.

Note: Make sure that you are using JDK 6 as several camel components (like the Web Console for example) now require JDK 6

...

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. The settings follow the guidelines used by the Maven project. Please pay particular attention to the password encryption recommendations .

Code Block
xml
xml
<settings>
  ...
  <servers>
    <!-- Per http://maven.apache.org/developers/committer-settings.html -->

    <!-- To publish a snapshot of some part of Maven -->
    <server>
      <id>apache-repo<.snapshots.https</id>
       <username>chirino<<username> <!-- YOUR APACHE LDAP USERNAME --> </username>
      <directoryPermissions>775</directoryPermissions>
      <filePermissions>664</filePermissions><password> <!-- YOUR APACHE LDAP PASSWORD --> </password>
    </server>
    <!-- To publish a website of some part of Maven -->
    <server>
      <id>apache-snapshots<.website</id>
       <username>chirino<<username> <!-- YOUR APACHE LDAP USERNAME --> </username>
      <directoryPermissions>775<<filePermissions>664</directoryPermissions>filePermissions>
      <filePermissions>664<<directoryPermissions>775</filePermissions>directoryPermissions>
    </server>
    <!-- To stage a release of some part of Maven -->
    <server>
      <id>apache-website<.releases.https</id>
      <username>chirino</username><username> <!-- YOUR APACHE LDAP USERNAME --> </username>
      <password> <!-- YOUR APACHE LDAP PASSWORD --> </password>
    </server>
    <!-- To stage a website of some part of Maven -->
      <directoryPermissions>775</directoryPermissions><server>
      <id>stagingSite</id> <!-- must match hard-coded repository identifier in site:stage-deploy -->
      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
    </server>

  </servers>
  ...
</settings>

Creating the Camel Release

...

It is also essential that you configure your umask to 2 on people.apache.org for non-interactive login. You can do that by including the snipped below in your .profile.

Code Block

umask 002

Creating the Camel Release

The release plugin will prompt for a release version, tag and next release version. Use a three digit release version of the form: 2.x.x and for the tag use a string of the form: camel-2.x.x. The next version string should use the two digit from: 2.x-SNAPSHOT as this can be consistent for future SNAPSHOT releases.

...

  1. Grab the latest source from SVN
    Code Block
    
    svn co https://svn.apache.org/repos/asf/camel/trunk camel
    cd camel
    

...

  1. Verify headers with rat
    Code Block
    
    mvn -e apache-rat:check
    grep -e ' !?????' target/rat.txt -- will show any files without licenses
    
  2. Do a release dry run to check for problems
    Code Block
    
    mvn release:prepare -DdryRun=true
    
    Check that you are happy with the results. The poms for the proposed tags will be in pom.xml.tag. When you like the results, clean up:
    Code Block
    
    mvn release:clean
    
  3. Prepare the release
    Code Block
    
    mvn release:prepare
    
    This will create the tag in svn and leave various stuff around locally to direct the perform phase.
  4. Perform the release to the staging repo
    Code Block
    
    mvn release:perform
    
  5. Close the staging repository
    Quote from the Maven release guide for Apache projects

    Login to https://repository.apache.orgImage Added using your Apache LDAP credentials. Click on "Staging". Then click on "camel" in the list of repositories. In the panel below you should see an open repository that is linked to your username and ip. Right click on this repository and select "Close". This will close the repository from future deployments and make it available for others to view. If you are staging multiple releases together, skip this step until you have staged everything. Enter the name and version of the artifact being released in the "Description" field and then click "Close". This will make it easier to identify it later.

    See the image in the original guide for more info.
  6. Verify staged artifacts
    Quote from the original guide

    If you click on your repository, a tree view will appear below. You can then browse the contents to ensure the artifacts are as you expect them. Pay particular attention to the existence of *.asc (signature) files. If the you don't like the content of the repository, right click your repository and choose "Drop". You can then rollback your release and repeat the process.
    Note the repository URL, you will need this in your vote email

  • 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).
    Code Block
    
    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:
    Code Block
    
    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
    Code Block
    
    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
    Code Block
    
    svn copy ../camel https://svn.apache.org/repos/asf/camel/tags/camel-x.y.z -m "Camel x.y.z Release"
    

...

  1. .

Testing the Camel Release Candidate

When folks need to test out a release candidate, the jars will not have been uploaded to the central Maven repo. This means that the example programs which use Maven will not automatically work .So whenever running the Examples and you need to append the following command line argument...

Code Block

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/maven2follow the Testing a release candidate guidelines.

Announcing the Camel Release

...