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