Preface
This page has been prepared for Apache Lucy committers. You need committer privileges to serve as Release Manager.
If this is your first time as a Release Manager, there are some materials you should peruse to familiarize yourself with ASF release conventions.
http://www.apache.org/dev/release-publishing.html -- An overview of the release process.
http://www.apache.org/dev/release.html -- ASF release FAQ.
http://www.apache.org/dev/release-signing.html -- ASF release signing policy.
http://www.apache.org/dev/openpgp.html -- Guide to using OpenPGP at the ASF.
http://www.apache.org/dev/release-download-pages.html -- Guide to creating project download pages. Ours is done, but this explains the rationale behind its content.
Lastly, there is the Incubator release management documentation at http://incubator.apache.org/guides/releasemanagement.html, from which this guide was largely distilled. It's not necessary to follow every recommendation in this sprawling document, particularly the irrelevant Java-specific sections, but it's important that you understand the issues involved.
If you have questions, ask on #lucy_dev or the dev list.
Preparation
NOTE -- The situation with publishing KEYS is in flux and this section may no longer be relevant. See [http://s.apache.org/Klf].
If you have not already done so, append your public key to the Lucy repository KEYS file at http://www.apache.org/dist/lucy/KEYS and publish your key at http://pgp.mit.edu/. The KEYS file itself contains instructions for making the necessary modifications. For more details on signing releases, see http://www.apache.org/dev/release-signing.html and http://www.apache.org/dev/openpgp.html.
The KEYS file is stored on people.apache.org in /www/www.apache.org/dist/lucy. Be careful when editing it as it is not under source control.
Versioning
Apache Lucy uses the following X.Y.Z versioning scheme:
ASF release => apache-lucy-0.3.1.tar.gz Documentation => 0.3.1 CPAN release => Lucy-0.3.1.tar.gz META.yml (CPAN release) => 0.003001 $VERSION (Lucy.pm) => "0.003001"
Official Apache Lucy releases will have X.Y.Z style versions, but packaged/binary releases of particular host language implementations (e.g. CPAN or rubygems) may append a final .n to their versions (X.Y.Z.n) to indicate a change in packaging or distribution for that particular package. See the discussion here.
Helper script
Lucy has a "release_commands.pl" helper script in devel/bin which provides the step-by-step sequence of actions necessary to perform a release. Whenever possible, it autogenerates exact commands for you to run (which often contain version-specific arguments and are troublesome to type out). It doesn't run the commands; instead it just prints them out for you to copy and paste instead of reformulate manually.
$ ./devel/bin/release_commands.pl --apache-id=myapacheid --version=0.3.1-rc1 > commands.txt
Run release_commands.pl from trunk, as the copies on the branches may or may not have been kept up to date.
Stages
From a high level, here are the stages of creating a release:
- Branch and tag the release candidate within version control.
- Build and stage the release artifacts.
- Vote.
- Publish.
- Announce.
The specifics of each stage are covered in release_commands.pl.