Commit | Line | Data |
---|---|---|
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 | |
28 | set -e | |
29 | ||
48dd4282 IJ |
30 | fail () { echo >&2 "$0: $*"; exit 16; } |
31 | ||
a75f3424 IJ |
32 | real=false |
33 | if [ "x$1" = x--real ]; then | |
34 | real=true; shift | |
35 | fi | |
36 | ||
48dd4282 IJ |
37 | if [ $# != 1 ]; then fail "wrong # arguments"; fi |
38 | wantversion="$1" | |
39 | ||
28747f70 IJ |
40 | version=`sed -n <Makefile.in 's/^DISTVERSION=[ ]*//p'` |
41 | ||
48dd4282 IJ |
42 | if [ "x$version" != "x$wantversion" ]; then |
43 | fail "you say version $wantversion but tree is $version" | |
44 | fi | |
45 | ||
28747f70 IJ |
46 | gpgkey='-u 0x48B50D39' |
47 | chiark=chiark:/u/ian/public-html/adns | |
48 | chiarkftp=$chiark/ftp | |
49 | ||
50 | x () { echo "----- $* -----"; "$@"; } | |
a75f3424 | 51 | wx () { if $real; then x "$@"; else echo "WOULD: $*"; fi; } |
28747f70 IJ |
52 | |
53 | x git clean -xdff | |
54 | x ./configure | |
495cc83f IJ |
55 | x make -j6 |
56 | x make check -j6 | |
28747f70 IJ |
57 | x make dist |
58 | rm -rf web | |
59 | x make web-install | |
60 | ||
29bad808 IJ |
61 | distdir=adns-$version |
62 | distfile=$distdir.tar.gz | |
28747f70 IJ |
63 | x test -f $distfile |
64 | ||
29bad808 IJ |
65 | rm -rf dist_tmp |
66 | mkdir dist_tmp | |
67 | cd dist_tmp | |
68 | tar axf ../$distfile | |
69 | cd $distdir | |
70 | git init --quiet | |
71 | git fetch --quiet ../.. HEAD | |
72 | git add . | |
73 | git commit --quiet -m T | |
74 | git diff --exit-code FETCH_HEAD | |
75 | cd ../.. | |
76 | ||
28747f70 IJ |
77 | tag=adns-${version//\~/-} |
78 | webout=docs-$version | |
79 | ||
a75f3424 IJ |
80 | wx gpg --detach-sign $distfile |
81 | wx git tag -s $gpgkey -m "adns release $version" $tag | |
82 | wx git push origin $tag~0:master $tag | |
28747f70 IJ |
83 | |
84 | distfiles="$distfile $distfile.sig" | |
a75f3424 IJ |
85 | wx rsync -vP $distfiles $chiarkftp/ |
86 | ||
87 | wx rsync -rvP web/. $chiark/$webout | |
28747f70 | 88 | |
a75f3424 | 89 | wx sha256sum $distfiles |
28747f70 | 90 | |
a75f3424 | 91 | if ! $real; then echo "NOT REAL"; exit 0; fi |
28747f70 IJ |
92 | |
93 | cat <<END | |
94 | ||
95 | TO 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 | |
101 | END |