changelog, etc.: Finalise 1.5.1.
[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
1fe1c762 7# * Maybe update copyright dates
28747f70
IJ
8# * Maybe update MAJOR and/or MINOR in common.make.in
9# * Update DISTVERSION in Makefile.in
10# * Update ADNS_VERSION_STRING in client/client.h
495cc83f
IJ
11# * Update version in ./changelog
12# * Commit the result
28747f70
IJ
13#
14# * Run this script
a75f3424 15# ./RELEASE-CHECKLIST [--real] <version>
28747f70
IJ
16#
17# * On chiark, maybe, replace ~ian/public-html/adns/current
495cc83f
IJ
18# with symlink to web-$(version)
19#
20# * On chiark, maybe, replace docs link (as directed by script)
21#
22# * If not an rc release, put files on ftp.gnu.org
28747f70
IJ
23#
24# * Send release announcement (use last one as template)
daf4b02e
IJ
25#
26# * Update DISTVERSION, ADNS_VERSION_STRING and start new changelog entry
28747f70
IJ
27
28set -e
29
48dd4282
IJ
30fail () { echo >&2 "$0: $*"; exit 16; }
31
a75f3424
IJ
32real=false
33if [ "x$1" = x--real ]; then
34 real=true; shift
35fi
36
48dd4282
IJ
37if [ $# != 1 ]; then fail "wrong # arguments"; fi
38wantversion="$1"
39
28747f70
IJ
40version=`sed -n <Makefile.in 's/^DISTVERSION=[ ]*//p'`
41
48dd4282
IJ
42if [ "x$version" != "x$wantversion" ]; then
43 fail "you say version $wantversion but tree is $version"
44fi
45
28747f70
IJ
46gpgkey='-u 0x48B50D39'
47chiark=chiark:/u/ian/public-html/adns
48chiarkftp=$chiark/ftp
49
50x () { echo "----- $* -----"; "$@"; }
a75f3424 51wx () { if $real; then x "$@"; else echo "WOULD: $*"; fi; }
28747f70
IJ
52
53x git clean -xdff
54x ./configure
495cc83f
IJ
55x make -j6
56x make check -j6
28747f70
IJ
57x make dist
58rm -rf web
59x make web-install
60
29bad808
IJ
61distdir=adns-$version
62distfile=$distdir.tar.gz
28747f70
IJ
63x test -f $distfile
64
29bad808
IJ
65rm -rf dist_tmp
66mkdir dist_tmp
67cd dist_tmp
68tar axf ../$distfile
69cd $distdir
70git init --quiet
71git fetch --quiet ../.. HEAD
72git add .
73git commit --quiet -m T
74git diff --exit-code FETCH_HEAD
75cd ../..
76
28747f70
IJ
77tag=adns-${version//\~/-}
78webout=docs-$version
79
a75f3424
IJ
80wx gpg --detach-sign $distfile
81wx git tag -s $gpgkey -m "adns release $version" $tag
82wx git push origin $tag~0:master $tag
28747f70
IJ
83
84distfiles="$distfile $distfile.sig"
a75f3424
IJ
85wx rsync -vP $distfiles $chiarkftp/
86
87wx rsync -rvP web/. $chiark/$webout
28747f70 88
a75f3424 89wx sha256sum $distfiles
28747f70 90
a75f3424 91if ! $real; then echo "NOT REAL"; exit 0; fi
28747f70
IJ
92
93cat <<END
94
95TO UPDATE WEB PAGE DOCS:
96 ssh ${chiark%%:*}
97 cd ${chiark#*:}
98 rm -f docs.tmp
99 ln -s $webout docs.tmp
100 mv -Tf docs.tmp docs
101END