Apache ACE is an open source project, and as such its only official releases are source releases. For convenience we also provide binaries. This document describes how to do a source release. It is based on the Release FAQ.
To create a release you must:
- Be a committer in the Apache ACE project;
- Have Ant installed on your system;
- Have Subversion installed on your system;
- Have gpg installed on your system;
- Have a public key added to the keys file.
Before you can start staging a release candidate, you must:
- make sure there are no dependencies on snapshots/unreleased versions;
- double check that the version you want to create is correctly filled in in build/build.xml;
- create a tagged version of the sources in preparation of the release candidate.
Creating a tagged version of the sources can be done directly through svn:
$ svn copy https://svn.apache.org/repos/asf/ace/trunk/ https://svn.apache.org/repos/asf/ace/releases/X.Y.Z -m "Release X.Y.Z"
Staging a release candidate¶
Staging a release starts by checking out a tagged version of the sources:
$ svn co https://svn.apache.org/repos/asf/ace/releases/X.Y.Z ace-X.Y.Z
The next step is to build the software and create the archives:
$ cd ace-X.Y.Z/build $ ant $ ant package
Then you sign archives by invoking the following target:
$ ant sign
you can upload the archives and the signatures to our development area, which we use to stage this release candidate. This development area can be found at https://dist.apache.org/repos/dist/dev/ace and adding files to it can be done using "svnpubsub" which is taken care of by the following target:
$ ant commit-to-staging
Voting on the release¶
Start a vote on the email@example.com list, for example (be sure to replace X.Y.Z with the correct version!):
To: "Apache ACE developers list" <firstname.lastname@example.org> Subject: [VOTE] Release ACE version X.Y.Z The source code of Apache ACE version X.Y.Z is available, along with an archive containing all dependencies and a binary release for convenience. They can all be found in our staging area here: https://dist.apache.org/repos/dist/dev/ace/ You can use this UNIX script to download the release and verify the checksums and signatures: http://svn.apache.org/repos/asf/ace/trunk/etc/check_staged_ace.sh Usage: sh check_staged_ace.sh X.Y.Z Please vote to approve this release: [ ] +1 Approve the release [ ] -1 Veto the release (please motivate) This vote will be open for at least 72 hours.
The formal requirements on approving a release are:
Votes on whether a package is ready to be released use majority approval -- i.e. at least three PMC members must vote affirmatively for release, and there must be more positive than negative votes. Releases may not be vetoed. Before voting +1 PMC members are required to download the signed source code package, compile it as provided, and test the resulting executable on their own platform, along with also verifying that the package contains the required contents.
The list of PMC (and project) members can be found on this page.
Wrap up the vote with an e-mail to the email@example.com list again:
To: "Apache ACE developers list" <firstname.lastname@example.org> Subject: [RESULT] [VOTE] Release ACE version X.Y.Z The vote has passed/failed with the following result: +1 (binding): ... +1 (non-binding): ... -1: ...
And, depending on the result, continue with either promoting or cancelling the release below.
Promoting the release¶
Move the artifacts from the development area to the final release location at https://dist.apache.org/repos/dist/release/ace by invoking the following target:
$ ant promote-to-release
Now wait at least 24 hours to allow the release to be properly mirrored and then update the news and download page on the Apache ACE website and announce the release:
To: "Apache ACE users list" <email@example.com> Subject: [ANN] ACE version X.Y.Z released. The Apache ACE team is proud to announce the release of ACE version X.Y.Z. This release is available from our download page at: http://ace.apache.org/downloads.html
After announcing the release, please update the baseline bundles contained in trunk/cnf/releaserepo based on the released artifacts (remove old versions, keep only the latest one).
Please also make sure that old releases are removed from https://dist.apache.org/repos/dist/release/ace (the ant task does not do that yet). Leave the KEYS file in place. Take a look at http://www.apache.org/dev/release.html#when-to-archive for more information about this.
Cancelling the release¶
Remove the artifacts from the development area:
$ ant delete-from-staging
We keep the tag in subversion for reference.