Title: Release Guide 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](http://www.apache.org/dev/release.html). ## Prerequisites To create a release you must: * Be a committer in the Apache ACE project. * Have ant installed on your system. * Have svn installed on your system. * Have gpg installed on your system. * Have a public key added to: http://www.apache.org/dist/ace/KEYS Before you can start staging a release candidate, you must: * Make sure there are no snapshot dependencies anymore. * Create a tagged version of the sources in preparation of the release candidate. ## Staging a release candidate Staging a release starts by checking out a tagged version of the sources: :::sh $ svn co https://svn.apache.org/repos/asf/ace/tags/ace-sources-X.Y.Z ace-sources-X.Y.Z The next step is to create the source archive: :::sh $ cd ace-sources-X.Y.Z/build $ ant -f src-build.xml package-src Then you sign the source archive by invoking the following target: :::sh $ ant -f src-build.xml sign-src Now you can upload the source archive 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: :::sh $ ant -f src-build.xml commit-to-staging ## Voting on the release Start a vote on the dev@ace.apache.org list: :::sh To: "Apache ACE developers list" Subject: [VOTE] Release ACE version X.Y.Z The source code of Apache ACE version X.Y.Z is available in our staging area here: https://dist.apache.org/repos/dist/dev/ace/ace-sources-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 here: http://ace.apache.org/get-involved/project-team.html Wrap up the vote with an e-mail to the dev@ace.apache.org list again: To: "Apache ACE developers list" 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: :::sh $ ant -f src-build.xml promote-to-release Then update the tag in subversion, for example for the X.Y.Z release like this: :::sh $ svn move https://svn.apache.org/repos/asf/ace/tags/ace-sources-X.Y.Z https://svn.apache.org/repos/asf/ace/releases/ace-sources-X.Y.Z -m "Apache ACE source release X.Y.Z tagged." 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" 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 ## Cancelling the release Remove the artifacts from the development area: :::sh $ ant -f src-build.xml delete-from-staging We keep the tag in subversion for reference.