Release Engineering

Create a new release branch

svn copy svn+ssh:// \

Getting a release branch working copy

When making a new release, it can be convenient to have the whole source tree available. I do this with:

svn co --ignore-externals svn+ssh:// ccl-1.5-all

This way, I don't end up with useless copies of the sources under the platform-specific directories.

It also makes sense to remember to say

svn up --ignore-externals

to avoid picking up the useless copies of the sources later.

Fixing externals

I generally think it's preferable for release branches to be self-contained. This script changes the externals to point to the release branch instead of the trunk. Run it while in the top-level directory of the working copy.

progname=`basename $0`
for target in darwinppc darwinx86 freebsdx86 linuxppc linuxx86 solarisx86 windows; do
    newprops=`mktemp /tmp/${progname}.XXXXXX` || exit 1
    svn propget svn:externals ${target}/ccl | sed -e s,trunk,release/1.5, >$newprops
    cat $newprops
    svn propset svn:externals ${target}/ccl -F $newprops
    rm $newprops

Update version information

Update ccl:level-1;version.lisp appropriately.

Update ccl:level-0;l0-init.lisp and update *features* appropriately.

Update the version refs in the "Getting Clozure CL with Subversion" chapter in the manual.

Building binaries

Be sure to use "-n" when starting ccl, or otherwise ensure that junk in your init file doesn't creep into the binaries.

Bumping fasl and image versions

First, bump max image and fasl versions. See r14867.

Build interim binaries somewhere. Then, bump min image and current fasl versions, as in r14869.

Build all new binaries, and check them in.

Update web sites

In addition to and, update as well. Keeping all the wiki-type things (cliki, wikipedia, etc.) up-to-date is probably a fool's errand.

Last modified 10 years ago Last modified on Jul 14, 2011, 4:10:24 PM