Here is a shell script I wrote, that I have been using for rolling a release.

I ought to push this functionality into 'release.py', but I haven't, so I thought the least I could do is share it as-is.

Main enhancements over 'release.py':

* Lets me run all the release steps in the same simple way, by passing one or more STEP keywords (roll, sign, test, tag, post, publish, announce, clean-dist) and the VERSION number, and not having to remember the REVNUM each time. 'release.py' currently requires different args for each subcommand.

  * Tries to encode all the steps described in and around

http://subversion.apache.org/docs/community-guide/releasing.html#rolling-release
    either automated or by printing manual instructions.

Help text:

$ svn-roll.sh --help 1.12.2
Roll a minor release or release candidate
usage: /home/julianfoad/bin/svn-roll.sh STEP... [OPTION...] VERSION [REVISION]

  STEP:
    build-env  download and set up prerequisites, into 'prefix/'
    roll       roll the tarballs, writing into 'deploy/'
    sign       sign the tarballs;
    test       (tell how to) run my tests
                 copy to dist-dev WC, ready for my testing
  * tag        create a tag
  * post       post the tarballs to dist-dev;
                 show an 'up for testing/signing' email
  * publish    move the tarballs to the dist-release area;
    announce   print release announcements (email and web content)
  * clean-dist clean all old releases from the dist-release area

  * This step commits a modification to the svn project resources.

  OPTION:
--base-dir=DIR directory for all files and 'deploy/', 'prefix/', 'tempdir/'
                    also passed to release.py [default: the CWD]
    --security      enable 'security release' options
    --patches=DIR   specify the directory where security patches are found
    --branch=PATH   specify the branch, relative to ^/subversion
                    [default: branches/VER.x]

  VERSION: a full version identifier (such as 1.1.0-rc1)

REVISION: the branch revision number [default: from file 'subversion-VERSION.rev']


I hereby contribute it to the Subversion code base.

- Julian

Attachment: svn-roll.sh
Description: application/shellscript

Reply via email to