Camel Extra Component Website

Release Guide

Prerequisites

To prepare or perform a release you MUST BE at least an Camel Extra committer.

Maven setup

You also need to edit your ~/.m2/settings.xml to add the camel-extra servers. So your XML should look something like...

<?xml version="1.0"?>
<settings>
    <servers>
        <server>
            <id>sonatype-nexus-staging</id>
            <username>MY_SONATYPE_USERNAME</username>
            <password>MY_SONATYPE_PASSWORD</password>
        </server>
        <server>
            <id>sonatype-nexus-snapshots</id>
            <username>MY_SONATYPE_USERNAME</username>
            <password>MY_SONATYPE_PASSWORD</password>
        </server>
    </servers>
    <profiles>
      <profile>
        <id>apache-extra-release</id>
        <properties>
          <gpg.useagent>false</gpg.executable>
          <gpg.passphrase>the_pass_phrase</gpg.passphrase>
        </properties>
      </profile>
    </profiles>
</settings>

Creating the Camel Extra 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-extra-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 Git and checkout the target branch to build from. If you build a new release from master create a new branch

git checkout BRANCH_NAME   # e.g. BRANCH_NAME = camel-extra-2.16.x

2. Verify headers with rat

mvn -e org.apache.rat:apache-rat-plugin:check
grep -e ' !?????' target/rat.txt   # will show any files without licenses

The grep command will return a list of files that don't have correct license headers. If nothing is returned, you can proceed with the next step. Otherwise fix the license header in all listed files and invoke both commands again until no files are returned.

3. Do a release dry run to check for problems

mvn release:prepare -DdryRun=true -Psonatype-oss-release
...
[INFO] Checking dependencies and plugins for snapshots ...
What is the release version for "Camel Extra"? (org.apache-extras.camel-extra:camel-parent) 2.18.0: : 
What is SCM release tag or label for "Camel Extra"? (org.apache-extras.camel-extra:camel-parent) camel-parent-2.18.0: : camel-extra-2.18.0
What is the new development version for "Camel Extra"? (org.apache-extras.camel-extra:camel-parent) 2.18.1-SNAPSHOT: : 2.18-SNAPSHOT

Check that you are happy with the results. The poms for the proposed tags will be in pom.xml.tag. Check also the generated signature files:

ullgren$ gpg target/camel-parent-2.18.0-SNAPSHOT.pom.asc 
gpg: Signature made 2017-06-14T22:55:49 CEST using DSA key ID A2CF8A38
gpg: Good signature from "Pontus Ullgren"

4. Prepare the release

When you like the results, clean up:

mvn release:clean -Psonatype-oss-release

Then run prepare for real this time

mvn release:prepare -Psonatype-oss-release

NOTE: If your git doesn't remember the username and password, you need pass it to the mvn plugin, otherwise the release plugin will wait forever.

mvn release:prepare -Dusername=USERNAME -Dpassword=PASSWORD -Psonatype-oss-release

This will create the tag in git and leave various stuff around locally to direct the perform phase.

5. Perform the release to the staging repo

mvn release:perform -Psonatype-oss-release

6. Close the staging repository

Login to https://oss.sonatype.org using your Sonatype credentials. Click on "Staging Repositories". Then select "orgapache-extrascamel-extra-xxx" in the list of repositories, where xxx represents a 4 digit sequential number. Click "Close" on the tool bar above. This will close the repository from future deployments and make it available for others to view.

7. Verify staged artifacts

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.

Testing the Camel Extra 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 and you need to follow the Testing a release candidate guidelines.

Afterwards send out the VOTE for this release candidate to the mailing list.

Announcing the Camel Extra Release

If the VOTE pass,

  1. Close it by sending the RESULT to the mailing list.
  2. Promote the artifacts to the central repo. For this login to https://oss.sonatype.org using your Sonatype credentials. Click on "Staging Repositories".
    Then select "orgapache-extrascamel-extra-xxx" in the list of repositories, where xxx represents a 4 digit sequential number. Click "Release" on the tool bar above. This will promote all artifacts to the central maven repo. Enter the name and version of the artifact being released in the "Description" field and then click "Release". This will make it easier to identify it later.
  3. Perform a release in JIRA and create a new release version in JIRA
  4. There should be already a release notes on the page makred as In Progress. Edit the release notes page and add a new in progress version.