From b71405c9a4501671e6cc5bbb826165fb09dcb87d Mon Sep 17 00:00:00 2001
From: David Bremner <bremner@debian.org>
Date: Mon, 5 Sep 2011 08:45:28 -0300
Subject: [PATCH] build system: Check that python bindings have consistent
 version when releasing

Thanks to Sebastian Spaeth breaking out version.py, this can be done
without loading notmuch.py, or using sed. version.py is not (yet)
autogenerated because it seems more important to minimize the
differences between the tagged version and the tarball.
---
 Makefile.local | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/Makefile.local b/Makefile.local
index e3d4d031..38f6c174 100644
--- a/Makefile.local
+++ b/Makefile.local
@@ -34,6 +34,8 @@ DEB_TAR_FILE=$(PACKAGE)_$(VERSION).orig.tar.gz
 SHA1_FILE=$(TAR_FILE).sha1
 GPG_FILE=$(SHA1_FILE).asc
 
+PV_FILE=bindings/python/notmuch/version.py
+
 # Smash together user's values with our extra values
 FINAL_CFLAGS = -DNOTMUCH_VERSION=$(VERSION) $(CFLAGS) $(WARN_CFLAGS) $(CONFIGURE_CFLAGS) $(extra_cflags)
 FINAL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(CONFIGURE_CXXFLAGS) $(extra_cflags) $(extra_cxxflags)
@@ -166,7 +168,7 @@ release-message:
 verify-source-tree-and-version: verify-no-dirty-code
 
 .PHONY: verify-no-dirty-code
-verify-no-dirty-code: verify-version-debian
+verify-no-dirty-code: verify-version-debian verify-version-python
 ifeq ($(IS_GIT),yes)
 	@printf "Checking that source tree is clean..."
 ifneq ($(shell git ls-files -m),)
@@ -192,6 +194,15 @@ verify-version-debian: verify-version-components
 	 fi
 	@echo "Good."
 
+.PHONY: verify-version-python
+verify-version-python: verify-version-components
+	@echo -n "Checking that python bindings version is $(VERSION)..."
+	@if [ "$(VERSION)" != $$(python -c "execfile('$(PV_FILE)'); print __VERSION__") ] ; then \
+		(echo "No." && \
+		 echo "Please edit version and $(PV_FILE) to have consistent versions." && false) \
+	 fi
+	@echo "Good."
+
 .PHONY: verify-version-components
 verify-version-components:
 	@echo -n "Checking that $(VERSION) consists only of digits and periods..."
-- 
2.45.2