chiark / gitweb /
Fix typo in changelog entry for 1.6.1
[adns.git] / RELEASE-CHECKLIST
index af1cbc1571cdcc34f2a6c590fad974f808673a3b..e38d55c2c1a9316632501e3050c8db6b00e3b8e0 100755 (executable)
@@ -3,16 +3,22 @@
 #
 #  * Maybe rerun autoconf
 #  * Ensure changelog reflects changes
-#  * Ensure NEWS reflects changes
+#  * Maybe update copyright dates
 #  * Maybe update MAJOR and/or MINOR in common.make.in
 #  * Update DISTVERSION in Makefile.in
 #  * Update ADNS_VERSION_STRING in client/client.h
+#  * Update version in ./changelog
+#  * Commit the result
 #
 #  * Run this script
-#      ./RELEASE-CHECKLIST
+#      ./RELEASE-CHECKLIST [--real] <version>
 #
 #  * On chiark, maybe, replace ~ian/public-html/adns/current
-#    with symlink to web-$(version) (as directed by script)
+#    with symlink to web-$(version)
+#
+#  * On chiark, maybe, replace docs link (as directed by script)
+#
+#  * If not an rc release, put files on ftp.gnu.org
 #
 #  * Send release announcement (use last one as template)
 #
 
 set -e
 
+fail () { echo >&2 "$0: $*"; exit 16; }
+
+real=false
+if [ "x$1" = x--real ]; then
+       real=true; shift
+fi
+
+if [ $# != 1 ]; then fail "wrong # arguments"; fi
+wantversion="$1"
+
 version=`sed -n <Makefile.in 's/^DISTVERSION=[ ]*//p'`
 
+if [ "x$version" != "x$wantversion" ]; then
+       fail "you say version $wantversion but tree is $version"
+fi
+
 gpgkey='-u 0x48B50D39'
 chiark=chiark:/u/ian/public-html/adns
 chiarkftp=$chiark/ftp
 
 x () { echo "----- $* -----"; "$@"; }
+wx () { if $real; then x "$@"; else echo "WOULD: $*"; fi; }
 
 x git clean -xdff
 x ./configure
-x make -j4
-x make check
+x make -j6
+x make check -j6
 x make dist
 rm -rf web
 x make web-install
 
-distfile=adns-$version.tar.gz
+distdir=adns-$version
+distfile=$distdir.tar.gz
 x test -f $distfile
 
+rm -rf dist_tmp
+mkdir dist_tmp
+cd dist_tmp
+tar axf ../$distfile
+cd $distdir
+git init --quiet
+git fetch --quiet ../.. HEAD
+git add .
+git commit --quiet -m T
+git diff --exit-code FETCH_HEAD
+cd ../..
+
 tag=adns-${version//\~/-}
 webout=docs-$version
 
-x gpg --detach-sign $distfile
-x git tag -s $gpgkey -m "adns release $version" $tag
-x git push origin $tag~0:master $tag
+wx gpg --detach-sign $distfile
+wx git tag -s $gpgkey -m "adns release $version" $tag
+wx git push origin $tag~0:master $tag
 
 distfiles="$distfile $distfile.sig"
-x rsync -vP $distfiles $chiarkftp/
+wx rsync -vP $distfiles $chiarkftp/
+
+wx rsync -rvP web/. $chiark/$webout
 
-x rsync -rvP web/. $chiark/$webout
+wx sha256sum $distfiles
 
-x sha256sum $distfiles
+if ! $real; then echo "NOT REAL"; exit 0; fi
 
 cat <<END