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 | ||||
---|---|---|---|---|
| ||||
<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.
...
- Grab the latest source from SVN
Code Block svn co https://svn.apache.org/repos/asf/camel/trunk camel cd camel
...
- Verify headers with rat
Code Block mvn -e apache-rat:check grep -e ' !?????' target/rat.txt -- will show any files without licenses
- Do a release dry run to check for problems
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:prepare -DdryRun=true
Code Block mvn release:clean
- Prepare the release
This will create the tag in svn and leave various stuff around locally to direct the perform phase.Code Block mvn release:prepare
- Perform the release to the staging repo
Code Block mvn release:perform
- 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". 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.
- 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
- Change the version number in:
- pom.xml - in the project root and all sub-projects
- the value of <camel-version> property in the root pom.xml
- Note: The command below will do the trick on Linux (replace for the appropriate version).
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
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"
...
.
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
...