Release Management

  * get your gpg key into a file called KEYS at

    https://svn.apache.org/repos/asf/excalibur/trunk/KEYS

  * copy this file to

    /www/www.apache.org/dist/excalibur

    ie

    wget https://svn.apache.org/repos/asf/excalibur/trunk/KEYS
    scp KEYS minotaur.apache.org:/www/www.apache.org/dist/excalibur

  * update project.xml. Probably need to change the version numbers.
    Commit the changes.

    cd ~/svn/excalibur/trunk
    vim instrument/project.xml
    vim instrument-manager/project.xml
    vim instrument-client/project.xml
    svn commit -m 'prepare for releases'

    or something like that.

  * optional: temporary get rid of your gpg passphrase

    gpg --edit-key <YOUR ID>
    > key <YOURKEY>
    > passwd
    <YOUR PASSPHRASE>
    <enter>
    <enter>
    yes
    quit
    yes

    or something like that.

  * make sure you're using the latest version of the Sun JDK 1.3 to build the distributions.
    Otherwise subtle incompatibility issues may arise later. Exceptions are packages which
    utilize JDK1.4 logging like excalibur-framework-impl. Those need to be built using JDK1.4.

  * build distributions, tag svn, and deploy them using 

    maven multiproject:install
    cd instrument
    maven excalibur:release
    cd ../instrument-manager
    maven excalibur:release
    cd ../instrument-client
    maven excalibur:release

    The way the script works is if you have the string "RC" or the string "dev"
    in the version then it assumes it is a release candidate
    and deploys to your own personal account
    (/home/${user}/public_html/dist) otherwise it deploys to
    main area (/www/www.apache.org/dist).
  
    To deploy the artifacts you add something like the following
    into your ~/build.properties or you can specify it on command
    line.

    maven.username=donaldp
    maven.privatekey=C:\Documents and Settings\Peter\Application Data\SSH\UserKeys\PeterHome

    The goal to deploy artifacts is "excalibur:deploy", tagging
    repo is "excalibur:tagRelease" and releasing (which tags and
    deploys) is "excalibur:release". See maven.xml file(s).

    With the newer maven releases JSCH is used in the deploy plugin,
    and ssh agent forwarding and the like won't work. To get around
    this, you will probably need to specify

    maven.repo.default.passphrase=XXXX

    either on the commandline r in ~/build.properties.

  * optional: restore your gpg passphrase

    gpg --edit-key <YOUR ID>
    > key <YOURKEY>
    > passwd
    <YOUR PASSPHRASE>
    <YOUR PASSPHRASE>
    quit
    yes

    or something like that.

  * ask for feedback on dev@excalibur

  * probably go through several iterations of the above as some
    last-minute bugs are hammered out

  * call for a PMC vote to release the files

  * if the vote passes, change the version numbers to final and
    rerun the build process. With no "RC" in the version name
    the files should end up at

    http://www.apache.org/dist/excalibur/

  * send out announcements to the appropriate mailing lists 

see also: http://wiki.apache.org/avalon/AvalonReleaseManagerHowto. It has sample announcements and the like. Don't pay attention to the rest of the process though :-D

ReleaseManagement (last edited 2009-09-20 23:25:36 by localhost)