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