summaryrefslogtreecommitdiff
path: root/RELEASE-CHECKLIST
blob: e1f45dd0c5a556e671adcfb45bf4c49bbb9b007a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/bin/bash
# This is for the benefit of the upstream maintainers of GNU adns
#
#  * Maybe rerun autoconf
#  * Ensure changelog reflects changes
#  * Ensure NEWS reflects changes
#  * Maybe update MAJOR and/or MINOR in common.make.in
#  * Update DISTVERSION in Makefile.in
#  * Update ADNS_VERSION_STRING in client/client.h
#
#  * Run this script
#      ./RELEASE-CHECKLIST [--real] <version>
#
#  * On chiark, maybe, replace ~ian/public-html/adns/current
#    with symlink to web-$(version) (as directed by script)
#
#  * Send release announcement (use last one as template)
#
#  * Update DISTVERSION, ADNS_VERSION_STRING and start new changelog entry

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 dist
rm -rf web
x make web-install

distfile=adns-$version.tar.gz
x test -f $distfile

tag=adns-${version//\~/-}
webout=docs-$version

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"
wx rsync -vP $distfiles $chiarkftp/

wx rsync -rvP web/. $chiark/$webout

wx sha256sum $distfiles

if ! $real; then echo "NOT REAL"; exit 0; fi

cat <<END

TO UPDATE WEB PAGE DOCS:
  ssh ${chiark%%:*}
  cd ${chiark#*:}
  rm -f docs.tmp
  ln -s $webout docs.tmp
  mv -Tf docs.tmp docs
END