File: RELEASE-CHECKLIST

package info (click to toggle)
adns 1.6.1-1
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,692 kB
  • sloc: ansic: 7,975; sh: 499; makefile: 235; perl: 14
file content (100 lines) | stat: -rwxr-xr-x 2,198 bytes parent folder | download | duplicates (2)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/bin/bash
# This is for the benefit of the upstream maintainers of GNU adns
#
#  * Maybe rerun autoconf
#  * Ensure changelog reflects changes
#  * Maybe update copyright dates
#  * Maybe update MAJOR and/or MINOR in common.make.in
#  * Update DISTVERSION in Makefile.in
#  * Update ADNS_VERSION_STRING in client/client.h
#  * Update version in ./changelog
#  * Commit the result
#
#  * Run this script
#      ./RELEASE-CHECKLIST [--real] <version>
#
#  * On chiark, maybe, replace ~ian/public-html/adns/current
#    with symlink to web-$(version)
#
#  * On chiark, maybe, replace docs link (as directed by script)
#
#  * If not an rc release, put files on ftp.gnu.org
#
#  * 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 -j6
x make check -j6
x make dist
rm -rf web
x make web-install

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

rm -rf dist_tmp
mkdir dist_tmp
cd dist_tmp
tar axf ../$distfile
cd $distdir
git init --quiet
git fetch --quiet ../.. HEAD
git add .
git commit --quiet -m T
git diff --exit-code FETCH_HEAD
cd ../..

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