...
- The artifacts for each and every release must be SIGNED; your public key should be added to the KEYS file
- Your public key must also be cross-signed by other Apache committers (this can be done at key signing parties at ApacheCon for instance)
- Make sure you have the correct maven configuration in
~/.m2/settings.xml
- From Camel 2.10 onwards we will require to use Maven [3.0.2,3.1.0)
- From Camel 2.11 onwards we will require to use Maven [3.0.4,3.1.0]
- From Camel 2.15 onwards we will require to use Maven [3.1.1,3.2.5)
- You may want to get familiar with the release settings in the parent apache POM.
- Make sure you are using Java 1.7 for Apache Camel 2.14.0 and later (Java 1.6 for older versions).
...
Grab the latest source from Git
Code Block language text git clone https://git-wip-us.apache.org/repos/asf/camel.git cd camel
Verify headers with rat
Code Block language text mvn -e org.apache.rat:apache-rat-plugin:check grep -e ' !?????' target/rat.txt -- will show any files without licenses
Info Because of MRELEASE-812, you should use the following setting:
Code Block language text LANG='en_US.UTF-8'
Do a release dry run to check for problems
Code Block language text mvn release:prepare -DdryRun=true -Prelease
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:
Code Block language text cmueller$ gpg camel-core/target/camel-core-2.7.5-SNAPSHOT.jar.asc gpg: Signature made Tue Jan 10 20:50:27 2012 CET using RSA key ID 2A239C2C gpg: Good signature from "Christian Mueller (CODE SIGNING KEY) <cmueller@apache.org>"
When you like the results, clean up:
Code Block language text mvn release:clean -Prelease
Prepare the release
Code Block language text mvn release:prepare -Prelease
This will create the tag in svn and leave various stuff around locally to direct the perform phase.
Info Note: If you're located in Europe then release:prepare may fail with 'Unable to tag SCM' and 'svn: No such revision X'. Wait 10 seconds and run
Code Block language text mvn release:prepare -Prelease
again.
Perform the release to the staging repo
Code Block language text mvn release:perform -Prelease
- Close the staging repository
Quote from the Maven release guide for Apache projects
See the image in the original guide for more info.Login to https://repository.apache.org using your Apache LDAP credentials. Click on "Staging Repositories". Then select "org.apache.camel-xxx" in the list of repositories, where xxx represents your username and ip. Click "Close" on the tool bar above. 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.
- Verify staged artifacts
Quote from the original guideIf 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.
...
Manually updating files
From camel 2.14.0x, you don't need to update the pom version of the below modules if you already specify the -Prelease in the mvn release:xxx command.
The pom.xml
files in etc
, tests/camel-itest-karaf
, tests/camel-itest-osgi
, tests/camel-itest-performance
and tests/camel-performance
need to be manually updated with the Camel version number in the <parent>
tag.
...