]> git.notmuchmail.org Git - notmuch/blobdiff - devel/release-checks.sh
emacs: Add new option notmuch-search-hide-excluded
[notmuch] / devel / release-checks.sh
index ae02f557af23bda8488035367d2ae8eae5f95bb6..c0accf78bf1fa3ae86ac2586c122dab9c1663499 100755 (executable)
@@ -29,7 +29,7 @@ append_emsg ()
        emsgs="${emsgs:+$emsgs\n}  $1"
 }
 
-for f in ./version debian/changelog NEWS "$PV_FILE"
+for f in ./version.txt debian/changelog NEWS "$PV_FILE"
 do
        if   [ ! -f "$f" ]; then append_emsg "File '$f' is missing"
        elif [ ! -r "$f" ]; then append_emsg "File '$f' is unreadable"
@@ -51,14 +51,25 @@ then
                exit 1
        fi
 else
-       echo "Reading './version' file failed (suprisingly!)"
+       echo "Reading './version' file failed (surprisingly!)"
        exit 1
-fi < ./version
+fi < ./version.txt
 
 readonly VERSION
 
 # In the rest of this file, tests collect list of errors to be fixed
 
+printf %s "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.
@@ -66,7 +77,7 @@ verfail ()
        append_emsg "  Please follow the instructions in RELEASING to choose a version"
 }
 
-echo -n "Checking that '$VERSION' is good with digits and periods... "
+printf %s "Checking that '$VERSION' is good with digits and periods... "
 case $VERSION in
        *[!0-9.]*)
                verfail "'$VERSION' contains other characters than digits and periods" ;;
@@ -77,39 +88,7 @@ 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... "
+printf %s "Checking that this is Debian package for notmuch... "
 read deb_notmuch deb_version rest < debian/changelog
 if [ "$deb_notmuch" = 'notmuch' ]
 then
@@ -119,7 +98,7 @@ else
        append_emsg "Package name '$deb_notmuch' is not 'notmuch' in debian/changelog"
 fi
 
-echo -n "Checking that Debian package version is $VERSION-1... "
+printf %s "Checking that Debian package version is $VERSION-1... "
 
 if [ "$deb_version" = "($VERSION-1)" ]
 then
@@ -129,8 +108,8 @@ else
        append_emsg "Version '$deb_version' is not '($VERSION-1)' in debian/changelog"
 fi
 
-echo -n "Checking that python bindings version is $VERSION... "
-py_version=`python -c "with open('$PV_FILE') as vf: exec(vf.read()); print __VERSION__"`
+printf %s "Checking that python bindings version is $VERSION... "
+py_version=`python3 -c "with open('$PV_FILE') as vf: exec(vf.read()); print(__VERSION__)"`
 if [ "$py_version" = "$VERSION" ]
 then
        echo Yes.
@@ -139,7 +118,7 @@ else
        append_emsg "Version '$py_version' is not '$VERSION' in $PV_FILE"
 fi
 
-echo -n "Checking that NEWS header is tidy... "
+printf %s "Checking that NEWS header is tidy... "
 if [ "`exec sed 's/./=/g; 1q' NEWS`" = "`exec sed '1d; 2q' NEWS`" ]
 then
        echo Yes.
@@ -153,7 +132,7 @@ else
        fi
 fi
 
-echo -n "Checking that this is Notmuch NEWS... "
+printf %s "Checking that this is Notmuch NEWS... "
 read news_notmuch news_version news_date < NEWS
 if [ "$news_notmuch" = "Notmuch" ]
 then
@@ -163,7 +142,7 @@ else
        append_emsg "First word '$news_notmuch' is not 'Notmuch' in NEWS file"
 fi
 
-echo -n "Checking that NEWS version is $VERSION... "
+printf %s "Checking that NEWS version is $VERSION... "
 if [ "$news_version" = "$VERSION" ]
 then
        echo Yes.
@@ -175,7 +154,7 @@ fi
 #eval `date '+year=%Y mon=%m day=%d'`
 today0utc=`date --date=0Z +%s` # gnu date feature
 
-echo -n "Checking that NEWS date is right... "
+printf %s "Checking that NEWS date is right... "
 case $news_date in
  '('[2-9][0-9][0-9][0-9]-[01][0-9]-[0123][0-9]')')
        newsdate0utc=`nd=${news_date#\\(}; date --date="${nd%)} 0Z" +%s`
@@ -196,6 +175,18 @@ case $news_date in
        append_emsg "Date '$news_date' in NEWS file is not in format (yyyy-mm-dd)"
 esac
 
+year=`exec date +%Y`
+printf %s "Checking that copyright in documentation contains 2009-$year... "
+# Read the value of variable `copyright' defined in 'doc/conf.py'.
+copyrightline=$(grep ^copyright doc/conf.py)
+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
        echo