RELEASE-CHECKLIST: wip, as used for 1.5.0~rc0
[adns] / RELEASE-CHECKLIST
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
12 # ./RELEASE-CHECKLIST
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)
18
19 set -e
20
21 version=`sed -n <Makefile.in 's/^DISTVERSION=[ ]*//p'`
22
23 gpgkey='-u 0x48B50D39'
24 chiark=chiark:/u/ian/public-html/adns
25 chiarkftp=$chiark/ftp
26
27 x () { echo "----- $* -----"; "$@"; }
28
29 x git clean -xdff
30 x ./configure
31 x make -j4
32 x make check
33 x make dist
34 rm -rf web
35 x make web-install
36
37 distfile=adns-$version.tar.gz
38 x test -f $distfile
39
40 tag=adns-${version//\~/-}
41 webout=docs-$version
42
43 x gpg --detach-sign $distfile
44 x git tag -s $gpgkey -m "adns release $version" $tag
45 x git push origin $tag~0:master $tag
46
47 distfiles="$distfile $distfile.sig"
48 x rsync -vP $distfiles $chiarkftp/
49
50 x rsync -rvP web/. $chiark/$webout
51
52 x sha256sum $distfiles
53
54 cat <<END
55
56 TO UPDATE WEB PAGE DOCS:
57 ssh ${chiark%%:*}
58 cd ${chiark#*:}
59 rm -f docs.tmp
60 ln -s $webout docs.tmp
61 mv -Tf docs.tmp docs
62 END