...
- 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\]Wiki Markup - You may want to get familiar with the release settings in the parent apache POM.
- Make sure you have installed Prince to be able to generate the Camel manual
- Add your Prince installation
bin
directory to yourPATH
variable:Code Block PATH=$PATH:/usr/local/bin/prince
...
- Grab the latest source from Git
Code Block git clone https://git-wip-us.apache.org/repos/asf/camel.git cd camel
- Verify headers with rat
Code Block 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 LANG='en_US.UTF-8'
- 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. Check also the generated signature files:Code Block mvn release:prepare -DdryRun=true
When you like the results, clean up:Code Block 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>"
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
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 mvn release:prepare
again.
- 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 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.
...
- Close it by sending the RESULT to the mailing list.
- Promote the artifacts to the central repo. For this login to https://repository.apache.org using your Apache LDAP credentials. Click on "Staging Repositories". Select "org.apache.camel-xxx" in the list of repositories, where xxx represents your username and ip. 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.
- Perform a release in JIRA and create a new release version in JIRA
- There should be already a release notes page in the In Progress folder (if not create one based on the Camel x.y.z Release (template)). Edit it and change the number of fixed issues and update its parent to be the Download page. Now would be a good time to create a new release notes page for the next release based on the template mentioned before. It is useful and simpler to keep it up to date during the development cycle.
- Copy the newly deployed distribution to Apache website:
Check the console output and finish this step manually after checking the artifacts.Code Block cd ${CAMEL_ROOT_DIR}/etc/scripts release-distro.sh <Camel version>
- Copy the KEYS file by ssh into /www/www.apache.org/dist/camel/apache-camel/ on people.apache.org if you changed it
- Update the Download page to refer to the latest release distributions (search & replace the version numbers mostly)
- Upload the newly deployed schema and the manual to Apache:
Check the console output and finish this step manually after checking the artifacts.Code Block cd ${CAMEL_ROOT_DIR}/etc/scripts release-website.sh <Camel version>
- Upload the javadocs to Apache, you need to checkout the files from "https://svn.apache.org/repos/infra/websites/production/camel/content/maven/"
Info title Using SVN the first time on people.apache.org To be able to perform a checkout on people.apache.org from svn.apache.org, you have to trust the server certificate:
No Format svn list "https://svn.apache.org/repos/infra/websites/production/camel/content" Error validating server certificate for 'https://svn.apache.org:443': The certificate is not issued by a trusted authority. Use the fingerprint to validate the certificate manually! Certificate information: Hostname: *.apache.org Valid: from Tue, 20 Dec 2011 00:00:00 GMT until Mon, 17 Feb 2014 23:59:59 GMT Issuer: Thawte, Inc., US Fingerprint: bc:5f:40:92:fd:6a:49:aa:f8:b8:35:0d:ed:27:5e:a6:64:c1:7a:1b (R)eject, accept (t)emporarily or accept (p)ermanently?
- Copy $
CAMEL_ROOT
/trunk/etc/scripts/release-website.sh to your home directory on people.apache.org - Execute this script, e.g: ./release-website.sh 2.10.0
- It will download the XML Schema files and the Camel manual for the given release version
- At the end you have to commit these changes manually to SVN (simply follow the instructions)
- Copy $
- Update the Xml Reference page with a link to the XSD's
- Update the Manual page with a link to the PDF/HTML if it's a new major/minor version
- Mail the dev, user & announce lists
- Post a news entry in the wiki which links to the release page so folks can download it!
- perform a full export of the Camel WIKI sites to see your blog on the Camel index site. To do this, you have to remove the main.pageCache file in the content/cache sub directory:
- Add the release version number to the following
spring.schemas
file located insrc/main/resources/META-INF
directory of the following components:
camel-cxf
camel-spring
camel-spring-integration
camel-spring-security - Have a beer!
...
- Set up a new continuous integration build, if we release a new major/minor version: https://builds.apache.org/view/A-D/view/Camel/