Release Management has been edited by Carsten Ziegeler (Sep 08, 2008).

(View changes)

Content:

This is a draft for a how to about releasing artifacts from Apache Felix:

Most of the work is done by Maven.

Prerequisites

To prepare or perform a release you MUST BE at least a Apache Felix Committer

Each and every release must be signed; therefore the public key should be cross signed by other Apache committers (not required but suggested).
The public key should be added to http://www.apache.org/dist/felix/KEYS (See Appendix A)

Building the Release Candidates
  • Make sure that an appropriate version for the release is entered in Jira
  • Build the release artifacts with Maven (the following instructions work on Unix systems, for Windows use a different path than /tmp)
    • mvn -Prelease -Darguments="-Prelease -DaltDeploymentRepository=local::default::file:///tmp" -DaltDeploymentRepository=local::default::file:///tmp release:prepare
    • mvn -Prelease -Darguments="-Prelease -DaltDeploymentRepository=local::default::file:///tmp" -DaltDeploymentRepository=local::default::file:///tmp release:perform
  • The above commands created a tag in svn, deployed the release candidates into your /tmp directory, signed the binaries and created the md5/sha1 files.
  • Beautify the checksums (see Appendix B)
  • Upload these files to people.apache.org into your home folder and put them there together with the KEYS file containing your public key so we can verify the signatures.
  • Start the vote thread, wait 72 hours.
  • If the vote fails (easy case first) remove the tag from svn - done
  • If the vote is successful, publish the release (see below)
  • Create a new version for the artifact in jira.
Publishing the Release

If the vote is successful:

  • copy the released artifacts to the dist directory on www.apache.org/dist/felix
  • delete the old release there (its archived)
  • deploy the release to the maven repository
  • Update the news section on the website
  • Update the download page on the website to point to the new release.

For the last two tasks, it's better to give the mirrors some time to distribute the uploaded artifacts (one day should be fine). This ensures that once the website (news and download page) is updated, people can actually download the artifacts.

Related Links
  1. http://www.apache.org/dev/release-signing.html
  2. http://wiki.apache.org/incubator/SigningReleases
Appendix A: Create and Add your key to http://www.apache.org/dist/felix/KEYS

Considering that you are using a *nix system with a working OpenSSH, GnuPG, and bash you can create and add your own key with the following command:

  1. Create a public/private pair key:
    gpg --gen-key

    When gpg asks for e-mail linked the key you MUST USE the <committer>@apache.org one
    When gpg asks for comment linked the key you SHOULD USE "CODE SIGNING KEY"

  2. Add the key to http://www.apache.org/dist/felix/KEYS: type the following command replacing the word e-mail with your Apache's one (<committer>@apache.org).
    (gpg --list-sigs e-mail && gpg --export --armor e-mail) > toadd.key
    scp toadd.key people.apache.org:
    ssh people.apache.org "cat toadd.key >> /x1/www/www.apache.org/dist/felix/KEYS"
  3. You are DONE, but to see the changes on http://www.apache.org/dist/felix/KEYS you must wait 2 hours


Appendix B: Beautifying the checksums

The checksum files generated by Maven are not directly usable with all tools. So the following scripts beautify these:

for f in *.md5 ; do g=`echo $f | sed "s/\.md5//"` ; echo "  $g" >> $f ;
done
   for f in *.sha1 ; do g=`echo $f | sed "s/\.sha1//"` ; echo "  $g" >> $f ;
done
Appendix B: Script to check releases

Felix Meschberger has developed a set of script aim at testing the file to release. You can find them here:
http://people.apache.org/~fmeschbe/release_helpers/

Reply via email to