Apache Cayenne Website > Index > Developer Guide > Release Guide
Note that this page is of use for committers only. It describes the general procedure of building a Cayenne release.
Guide FOR 3.0 RELEASE BRANCH
Prerequisites
- A release manager must have his public key appended to the KEYS file checked in to SVN and the key published on one of the public key servers. More info can be found here: http://www.apache.org/dev/release-signing.html

Preparing Sources
- Export and commit the latest documentation per Documentation Guidelines.
- Create a report in Jira listing all issues that are FIXED but not CLOSED, paste its contents to RELEASE-NOTES.txt. Bulk-close all involved issues. Note that issues that affect multiple releases are usually closed immediately when they are fixed, and the note is placed in RELEASE-NOTES.txt immediately when this happens.
- Edit UPGRADE-NOTES.txt if there is anything to add there.
- Check Sources Compliance with ARAT. ARAT
(A Release Audit Tool) is a Java tool written by Robert Burrell Donkin for checking the release files for ASF licensing compliance. To run ARAT, download the jar (we are using version 0.5.1), and run it against unpacked distro (or the release tag), read the report and fix any issues.
$ cd cayenne $ mvn clean $ java -jar rat-0.5.1.jar `pwd` > report.txt
Building Release Artifacts
- Tag cayenne directory under the repository trunk (assuming X.X is a version tag identifying the release, such as "1.2B3"):
svn mkdir https://svn.apache.org/repos/asf/cayenne/main/tags/X.X -m "X.X tag dir" svn copy https://svn.apache.org/repos/asf/cayenne/main/trunk \ https://svn.apache.org/repos/asf/cayenne/main/tags/X.X/cayenne -m "tagging X.X release"
- Checkout or switch to the new tag to some directory on the build machine.
svn co https://svn.apache.org/repos/asf/cayenne/main/tags/X.X/cayenne cayenne-X.X
Or if you've done release testing before and have a dedicated local copy:
cd existing_checkout_dir svn switch https://svn.apache.org/repos/asf/cayenne/main/tags/X.X/cayenne/
- Replace SNAPSHOT version with release version. E.g. using the following Perl script:
$ cd cayenne-X.X $ find . -name pom.xml |xargs perl -i -n -e 's/X-SNAPSHOT/X.X/; print;' $ svn ci -m "changed POM version of the release tag"
- Signing release
For more info visit this page
. Release manager key must be in the project KEYS file. Signing is a manual procedure not included in the Ant or Maven script. Here is how it might work ("-u" option can be omitted if you have only one GPG key):
gpg --armor -u B8AF90BF --output cayenne-X.X.tar.gz.asc --detach-sig cayenne-X.X.tar.gz gpg --print-md MD5 cayenne-X.X.tar.gz > cayenne-X.X.tar.gz.md5
Voting
- Release files are uploaded to the release manager's web directory on people.apache.org.
- The vote is started on cayenne-dev mailing list.
Publishing the Release
- Publish assemblies:
$ ssh people.apache.org % cp /path/to/release/artifacts /www/www.apache.org/dist/cayenne/
... wait till it is synched to the main site and the mirrors.
After the release
- Update the DOAP file
(held in the Cayenne svn) which will update http://projects.apache.org/projects/cayenne.html
automatically - Update Freshmeat with new release number (http://freshmeat.net/projects/cayenne/
) - If the release is significant, consider press releases to relevant news sources
- Review the main website pages (front page and why-cayenne especially) to add any new features
- Add a news item to the Cayenne web site
- Send an email to the Cayenne user and developer lists
- Send a notification email to announceATapachenews.org
- Update http://en.wikipedia.org/wiki/Apache_Cayenne

Reference:
- Apache release publishing guide: http://www.apache.org/dev/release-publishing.html

- ARAT: http://code.google.com/p/arat/

- Signing Releases: http://www.apache.org/dev/release-signing.html
