X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=devel%2Frelease-checks.sh;h=5a7578b863aad83adeccb0abd9ce619662f71056;hp=8938905e0462e079b6edc520cca2f2f468b32d27;hb=60ac94fe58635f9c40724afa0f35965fc9ff1afc;hpb=0c097d9f6ed4cfaa43b0a7d4a55e7d0b8a795ac9 diff --git a/devel/release-checks.sh b/devel/release-checks.sh index 8938905e..5a7578b8 100755 --- a/devel/release-checks.sh +++ b/devel/release-checks.sh @@ -59,6 +59,17 @@ readonly VERSION # In the rest of this file, tests collect list of errors to be fixed +echo -n "Checking that git working directory is clean... " +git_status=`git status --porcelain` +if [ "$git_status" = '' ] +then + echo Yes. +else + echo No. + append_emsg "Git working directory is not clean (git status --porcelain)." +fi +unset git_status + verfail () { echo No. @@ -68,7 +79,7 @@ verfail () echo -n "Checking that '$VERSION' is good with digits and periods... " case $VERSION in - *[^0-9.]*) + *[!0-9.]*) verfail "'$VERSION' contains other characters than digits and periods" ;; .*) verfail "'$VERSION' begins with a period" ;; *.) verfail "'$VERSION' ends with a period" ;; @@ -77,38 +88,6 @@ 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 - -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 if [ "$deb_notmuch" = 'notmuch' ] @@ -130,7 +109,7 @@ else fi echo -n "Checking that python bindings version is $VERSION... " -py_version=`python -c "execfile('$PV_FILE'); print __VERSION__"` +py_version=`python -c "with open('$PV_FILE') as vf: exec(vf.read()); print(__VERSION__)"` if [ "$py_version" = "$VERSION" ] then echo Yes. @@ -196,45 +175,20 @@ case $news_date in append_emsg "Date '$news_date' in NEWS file is not in format (yyyy-mm-dd)" esac -readonly DATE=${news_date//[()]/} # bash feature -manthdata () -{ - set x $* - if [ $# != 7 ] - then - append_emsg "'$mp' has too many '.TH' lines" - man_mismatch=1 - fi - man_date=${5-} man_version=${7-} -} - -echo -n "Checking that manual page dates and versions are $DATE and $VERSION... " -manfiles=`find man -type f | sort` -man_pages_ok=Yes -for mp in $manfiles -do - case $mp in - *.[0-9]) ;; # fall below this 'case ... esac' - - */Makefile.local | */Makefile ) continue ;; - */.gitignore) continue ;; - *.bak) continue ;; - - *) append_emsg "'$mp': extra file" - man_pages_ok=No - continue - esac - manthdata `sed -n '/^[.]TH NOTMUCH/ { y/"/ /; p; }' "$mp"` - if [ "$man_version" != "$VERSION" ] - then append_emsg "Version '$man_version' is not '$VERSION' in $mp" - mman_pages_ok=No - fi - if [ "$man_date" != "$DATE" ] - then append_emsg "DATE '$man_date' is not '$DATE' in $mp" - man_pages_ok=No - fi -done -echo $man_pages_ok. +year=`exec date +%Y` +echo -n "Checking that copyright in documentation contains 2009-$year... " +# Read the value of variable `copyright' defined in 'doc/conf.py'. +# As __file__ is not defined when python command is given from command line, +# it is defined before contents of 'doc/conf.py' (which dereferences __file__) +# is executed. +copyrightline=`exec python -c "with open('doc/conf.py') as cf: __file__ = ''; exec(cf.read()); print(copyright)"` +case $copyrightline in + *2009-$year*) + echo Yes. ;; + *) + echo No. + append_emsg "The copyright in doc/conf.py line '$copyrightline' does not contain '2009-$year'" +esac if [ -n "$emsgs" ] then