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