This document describes how to do a source release. It is based on the Apache Development [Release FAQ] 1.
To create a release you must:
Have Subversion installed on your system;
Have gpg installed on your system;
Have a public key added to the [KEYS file] 2;
If you are using an http proxy, configure the following:
export GRADLE_OPTS=“-Dhttps.proxyHost=www.somehost.org -Dhttps.proxyPort=8080”
Before you can start staging a release candidate, you must:
Click on the Bndtools “Release workspace bundles”, and release the bundles that have been modified and need to be released.
Do not release bundles that are not modified or do not need a release (such as integration test bundles, i.e., all projects ending in *.itest
).
Once done, under the shell prompt, go to the cnf/releaserepo/
directory, run svn remove
to remove the previous (old) versions of the released bundles, and run svn add
to add the just released bundles.
Refresh the repositories using Bndtools, and commit all changes.
Creating a tagged version of the sources can be done directly through svn (replace r<n>
by the actual release number, like “r1”):
v=<version> \ svn copy https://svn.apache.org/repos/asf/ace/trunk \ https://svn.apache.org/repos/asf/ace/releases/$v \ -m "Release of Apache Ace $v"
Staging a release starts by checking out a tagged version of the sources (again, replace <version>
by the actual release version, like “2.0.0”):
v=<version> \ svn co https://svn.apache.org/repos/asf/ace/releases/$v apache-ace-$v
The next step is to build/test the software and create the release/staging/
directory (where the source/jars will be packaged, again, replace <version>
by the actual release number, like “2.0.0”):
Use Java 8 as JDK
$ cd apache-ace-<version> $ ./gradlew rat $ ./gradlew build runbundles export
Create the staging directory and artifacts (this will create ./build/staging/
directory containing the signed release archives):
$ ./gradlew makeStaging
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:
$ ./gradlew commitToStaging
Start a vote on the dev@ace.apache.org
list, for example (be sure to replace <version>
with the correct release number, like “1.0.0”):
To: "Ace Developers List" <dev@ace.apache.org> Subject: [VOTE] Release of Apache Ace release r<n> Hi, We solved N issues in this release: http://issues.apache.org/jira/... There are still some outstanding issues: http://issues.apache.org/jira/... Staging repository: https://dist.apache.org/repos/dist/dev/ace/apache-ace-<version>/ You can use this UNIX script to download the release and verify the signatures: http://svn.apache.org/repos/asf/ace/trunk/build/check_staged_ace_release.sh Usage: sh check_staged_ace_release.sh <version> /tmp/ace-staging This script, unlike the original check_staged_release.sh from Apache Felix, will download staging artifacts from https://dist.apache.org/repos/dist/dev/ace instead of http://repository.apache.org/content/repositories. Please vote to approve this release: [ ] +1 Approve the release [ ] -1 Veto the release (please provide specific comments) This vote will be open for 72 hours.
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:
$ ./gradlew promoteToRelease
Notify the dev@ace.apache.org
list about the successful promotion and notify the users@ace.apache.org
list that a new release is available.
Close all issues in JIRA that were fixed as part of the release and create a new version for the next release. This probably means that you need to rename the existing next
version to the released version of ACE and recreate a new next
version.
To cancel the release for whatever reason, run:
$ ./gradlew deleteFromStaging
And notify the dev@ace.apache.org
list to make everybody aware of this.