| 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 |
| 12 | # ./RELEASE-CHECKLIST |
| 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) |
| 18 | # |
| 19 | # * Update DISTVERSION, ADNS_VERSION_STRING and start new changelog entry |
| 20 | |
| 21 | set -e |
| 22 | |
| 23 | version=`sed -n <Makefile.in 's/^DISTVERSION=[ ]*//p'` |
| 24 | |
| 25 | gpgkey='-u 0x48B50D39' |
| 26 | chiark=chiark:/u/ian/public-html/adns |
| 27 | chiarkftp=$chiark/ftp |
| 28 | |
| 29 | x () { echo "----- $* -----"; "$@"; } |
| 30 | |
| 31 | x git clean -xdff |
| 32 | x ./configure |
| 33 | x make -j4 |
| 34 | x make check |
| 35 | x make dist |
| 36 | rm -rf web |
| 37 | x make web-install |
| 38 | |
| 39 | distfile=adns-$version.tar.gz |
| 40 | x test -f $distfile |
| 41 | |
| 42 | tag=adns-${version//\~/-} |
| 43 | webout=docs-$version |
| 44 | |
| 45 | x gpg --detach-sign $distfile |
| 46 | x git tag -s $gpgkey -m "adns release $version" $tag |
| 47 | x git push origin $tag~0:master $tag |
| 48 | |
| 49 | distfiles="$distfile $distfile.sig" |
| 50 | x rsync -vP $distfiles $chiarkftp/ |
| 51 | |
| 52 | x rsync -rvP web/. $chiark/$webout |
| 53 | |
| 54 | x sha256sum $distfiles |
| 55 | |
| 56 | cat <<END |
| 57 | |
| 58 | TO UPDATE WEB PAGE DOCS: |
| 59 | ssh ${chiark%%:*} |
| 60 | cd ${chiark#*:} |
| 61 | rm -f docs.tmp |
| 62 | ln -s $webout docs.tmp |
| 63 | mv -Tf docs.tmp docs |
| 64 | END |