Release Engineering
Create a new release branch
svn copy svn+ssh://svn.clozure.com/usr/local/publicsvn/openmcl/trunk \ svn+ssh://svn.clozure.com/usr/local/publicsvn/openmcl/release/1.5
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://svn.clozure.com/usr/local/publicsvn/openmcl/release/1.5 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.
#!/bin/sh 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 done
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 ccl.clozure.com and trac.clozure.com, update https://www.ohloh.net/p/ccl as well. Keeping all the wiki-type things (cliki, wikipedia, etc.) up-to-date is probably a fool's errand.