RELEASE-CHECKLIST: Require version argument
[adns] / RELEASE-CHECKLIST
CommitLineData
28747f70
IJ
1#!/bin/bash
2# This is for the benefit of the upstream maintainers of GNU adns
3#
4# * Maybe rerun autoconf
5# * Ensure changelog reflects changes
6# * Ensure NEWS reflects changes
7# * Maybe update MAJOR and/or MINOR in common.make.in
8# * Update DISTVERSION in Makefile.in
9# * Update ADNS_VERSION_STRING in client/client.h
10#
11# * Run this script
48dd4282 12# ./RELEASE-CHECKLIST <version>
28747f70
IJ
13#
14# * On chiark, maybe, replace ~ian/public-html/adns/current
15# with symlink to web-$(version) (as directed by script)
16#
17# * Send release announcement (use last one as template)
daf4b02e
IJ
18#
19# * Update DISTVERSION, ADNS_VERSION_STRING and start new changelog entry
28747f70
IJ
20
21set -e
22
48dd4282
IJ
23fail () { echo >&2 "$0: $*"; exit 16; }
24
25if [ $# != 1 ]; then fail "wrong # arguments"; fi
26wantversion="$1"
27
28747f70
IJ
28version=`sed -n <Makefile.in 's/^DISTVERSION=[ ]*//p'`
29
48dd4282
IJ
30if [ "x$version" != "x$wantversion" ]; then
31 fail "you say version $wantversion but tree is $version"
32fi
33
28747f70
IJ
34gpgkey='-u 0x48B50D39'
35chiark=chiark:/u/ian/public-html/adns
36chiarkftp=$chiark/ftp
37
38x () { echo "----- $* -----"; "$@"; }
39
40x git clean -xdff
41x ./configure
42x make -j4
43x make check
44x make dist
45rm -rf web
46x make web-install
47
48distfile=adns-$version.tar.gz
49x test -f $distfile
50
51tag=adns-${version//\~/-}
52webout=docs-$version
53
54x gpg --detach-sign $distfile
55x git tag -s $gpgkey -m "adns release $version" $tag
56x git push origin $tag~0:master $tag
57
58distfiles="$distfile $distfile.sig"
59x rsync -vP $distfiles $chiarkftp/
60
61x rsync -rvP web/. $chiark/$webout
62
63x sha256sum $distfiles
64
65cat <<END
66
67TO UPDATE WEB PAGE DOCS:
68 ssh ${chiark%%:*}
69 cd ${chiark#*:}
70 rm -f docs.tmp
71 ln -s $webout docs.tmp
72 mv -Tf docs.tmp docs
73END