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 candidateusage: /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
svn-roll.sh
Description: application/shellscript