From: Christophe Rhodes Date: Sun, 29 Aug 2010 14:33:50 +0000 (+0000) Subject: 1.0.42.1: add release script X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=f31bc323d5bfc205f94164b203833f35033df3cd;p=sbcl.git 1.0.42.1: add release script The script automates many of the tasks involved in performing the minimum level of sanity checking that I am comfortable with, and enumerates others that remain unscriptable despite 10 years of user interface "improvements" at Sourceforge. It is unlikely to generalise to other release managers' setups and taste without a little effort. --- diff --git a/release.sh b/release.sh new file mode 100755 index 0000000..6a56997 --- /dev/null +++ b/release.sh @@ -0,0 +1,91 @@ +#! /bin/sh + +set -ex + +cd "$1" + +sbcl_directory="$(pwd)" + +cd "$sbcl_directory" + +tmpfile=$(mktemp --tmpdir sbcl-build-$(date +%Y%m%d)-XXXXXXXXX) + +./make.sh >$tmpfile 2>&1 + +./src/runtime/sbcl --version | grep '^SBCL [1-9][0-9]*\.[0-9]\+\.[1-9][0-9]*$' + +version=$(./src/runtime/sbcl --version | awk '{print $2}') +grep "^changes in sbcl-$version relative to" NEWS + +cd tests +sh ./run-tests.sh >>$tmpfile 2>&1 +cd .. + +cp ./src/runtime/sbcl /tmp/sbcl-$version +cp ./output/sbcl.core /tmp/sbcl-$version.core + +./make.sh "/tmp/sbcl-$version --core /tmp/sbcl-$version.core" > /tmp/sbcl-$version-build-log 2>&1 +cd doc && sh ./make-doc.sh + +cd .. + +rm /tmp/sbcl-$version /tmp/sbcl-$version.core + +cp -a "$sbcl_directory" /tmp/sbcl-$version + +ln -s /tmp/sbcl-$version /tmp/sbcl-$version-x86-linux +cd /tmp/ +sh sbcl-$version/binary-distribution.sh sbcl-$version-x86-linux +sh sbcl-$version/html-distribution.sh sbcl-$version +cd sbcl-$version +sh ./distclean.sh +cd .. +sh sbcl-$version/source-distribution.sh sbcl-$version + +awk "BEGIN { state = 0 } + /^changes in sbcl-/ { state = 0 } + /^changes in sbcl-$version/ { state = 1 } + { if(state == 1) print \$0 }" < sbcl-$version/NEWS > sbcl-$version-release-notes.txt + +echo "The SHA256 checksums of the following distribution files are:" > sbcl-$version-crhodes +echo >> sbcl-$version-crhodes +sha256sum sbcl-$version*.tar >> sbcl-$version-crhodes +bzip2 /tmp/sbcl-$version*.tar + +echo Bugs fixed by sbcl-$version release > sbcl-$version-bugmail.txt +for bugnum in $(egrep -o "#[1-9][0-9][0-9][0-9][0-9][0-9]+" sbcl-$version-release-notes.txt | sed s/#// | sort -n) +do + printf "\n bug %s\n status fixreleased" $bugnum >> sbcl-$version-bugmail.txt +done +echo >> sbcl-$version-bugmail.txt + +set +x + +echo TODO: +echo +echo cvs commit -m "\"$version: will be tagged as sbcl_$(echo $version | sed 's/\./_/g')\"" +echo cvs tag sbcl_$(echo $version | sed 's/\./_/g') +echo gpg -sta /tmp/sbcl-$version-crhodes +echo sftp crhodes,sbcl@frs.sourceforge.net +echo \* cd /home/frs/project/s/sb/sbcl/sbcl +echo \* mkdir $version +echo \* chmod 775 $version +echo \* cd $version +echo \* put sbcl-$version-crhodes.asc +echo \* put sbcl-$version-x86-linux-binary.tar.bz2 +echo \* put sbcl-$version-source.tar.bz2 +echo \* put sbcl-$version-documentation-html.tar.bz2 +echo \* put sbcl-$version-release-notes.txt +echo +echo perform administrative tasks: +echo +echo \* https://sourceforge.net/project/admin/?group_id=1373 +echo \* In the File Manager interface, click on the release notes file +echo \ \ and tick the release notes box. +echo \* In the File Manager interface, click on the source tarball and +echo \ \ select as default download for all OSes. +echo \* mail sbcl-announce +echo \* check and send sbcl-$version-bugmail.txt to edit@bugs.launchpad.net +echo \ \ '(sign: C-c RET s p)' +echo \* update \#lisp IRC topic +echo \* update sbcl website diff --git a/version.lisp-expr b/version.lisp-expr index b3b971c..5f138ab 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.42" +"1.0.42.1"