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
Received on 2019-07-22 16:52:41 CEST