You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Julian Foad <ju...@apache.org> on 2019/07/22 14:52:35 UTC

svn-roll.sh - script for rolling a release

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