X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=devel%2Frelease-checks.sh;h=8938905e0462e079b6edc520cca2f2f468b32d27;hb=6af2b05612b2bbd998804826c39276b77afce887;hp=e1d19f20effa32b08425106fcb81ac1618db773b;hpb=a0ce84c3afd6021455fa3685088d409f58d3c510;p=notmuch diff --git a/devel/release-checks.sh b/devel/release-checks.sh index e1d19f20..8938905e 100755 --- a/devel/release-checks.sh +++ b/devel/release-checks.sh @@ -13,6 +13,8 @@ fi set -o posix set -o pipefail # bash feature +readonly DEFAULT_IFS="$IFS" # Note: In this particular case quotes are needed. + # Avoid locale-specific differences in output of executed commands LANG=C LC_ALL=C; export LANG LC_ALL @@ -20,8 +22,10 @@ readonly PV_FILE='bindings/python/notmuch/version.py' # Using array here turned out to be unnecessarily complicated emsgs='' +emsg_count=0 append_emsg () { + emsg_count=$((emsg_count + 1)) emsgs="${emsgs:+$emsgs\n} $1" } @@ -53,12 +57,13 @@ fi < ./version readonly VERSION +# In the rest of this file, tests collect list of errors to be fixed + verfail () { echo No. - echo "$@" - echo "Please follow the instructions in RELEASING to choose a version" - exit 1 + append_emsg "$@" + append_emsg " Please follow the instructions in RELEASING to choose a version" } echo -n "Checking that '$VERSION' is good with digits and periods... " @@ -72,8 +77,37 @@ case $VERSION in *) verfail "'$VERSION' is a single number" ;; esac +echo -n "Checking that LIBNOTMUCH version macros & variables match ... " +# lib/notmuch.h +LIBNOTMUCH_MAJOR_VERSION=broken +LIBNOTMUCH_MINOR_VERSION=broken +LIBNOTMUCH_MICRO_VERSION=broken +# lib/Makefile.local +LIBNOTMUCH_VERSION_MAJOR=borken +LIBNOTMUCH_VERSION_MINOR=borken +LIBNOTMUCH_VERSION_RELEASE=borken -# In the rest of this file, tests collect list of errors to be fixed +eval `awk 'NF == 3 && $1 == "#define" && $2 ~ /^LIBNOTMUCH_[A-Z]+_VERSION$/ \ + && $3 ~ /^[0-9]+$/ { print $2 "=" $3 }' lib/notmuch.h` + +eval `awk 'NF == 3 && $1 ~ /^LIBNOTMUCH_VERSION_[A-Z]+$/ && $2 == "=" \ + && $3 ~ /^[0-9]+$/ { print $1 "=" $3 }' lib/Makefile.local` + + +check_version_component () +{ + eval local v1=\$LIBNOTMUCH_$1_VERSION + eval local v2=\$LIBNOTMUCH_VERSION_$2 + if [ $v1 != $v2 ] + then append_emsg "LIBNOTMUCH_$1_VERSION ($v1) does not equal LIBNOTMUCH_VERSION_$2 ($v2)" + fi +} + +old_emsg_count=$emsg_count +check_version_component MAJOR MAJOR +check_version_component MINOR MINOR +check_version_component MICRO RELEASE +[ $old_emsg_count = $emsg_count ] && echo Yes. || echo No. echo -n "Checking that this is Debian package for notmuch... " read deb_notmuch deb_version rest < debian/changelog @@ -105,6 +139,20 @@ else append_emsg "Version '$py_version' is not '$VERSION' in $PV_FILE" fi +echo -n "Checking that NEWS header is tidy... " +if [ "`exec sed 's/./=/g; 1q' NEWS`" = "`exec sed '1d; 2q' NEWS`" ] +then + echo Yes. +else + echo No. + if [ "`exec sed '1d; s/=//g; 2q' NEWS`" != '' ] + then + append_emsg "Line 2 in NEWS file is not all '=':s" + else + append_emsg "Line 2 in NEWS file does not have the same length as line 1" + fi +fi + echo -n "Checking that this is Notmuch NEWS... " read news_notmuch news_version news_date < NEWS if [ "$news_notmuch" = "Notmuch" ]