aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2010-04-16 13:00:35 -0700
committerGravatar Carl Worth <cworth@cworth.org>2010-04-16 13:00:35 -0700
commit80240877f836214e556f1ff75a058465a69f2dea (patch)
tree83a690b38392b5f8659e8465010a49b252995b77
parent9b065ff3b2d38b72accc98e283db0d81bf1047ed (diff)
make release: Add a check that version and debian/changelog are consistent
Eventually I'd like to automate this so that one or the other of these files is canonical and the other is generated from it. Until then, add this check to the release process to avoid a skewed release being shipped.
-rw-r--r--Makefile.local23
-rw-r--r--RELEASING1
2 files changed, 20 insertions, 4 deletions
diff --git a/Makefile.local b/Makefile.local
index f497b6cb..854cf520 100644
--- a/Makefile.local
+++ b/Makefile.local
@@ -86,7 +86,7 @@ dist: $(TAR_FILE)
# are part of the release and need to take the version from the
# version file).
.PHONY: release
-release: verify-no-dirty-code
+release: verify-source-tree-and-version
$(MAKE) VERSION=$(VERSION) verify-newer
$(MAKE) VERSION=$(VERSION) test
$(MAKE) VERSION=$(VERSION) $(GPG_FILE)
@@ -130,8 +130,14 @@ release-message:
@echo ""
@echo "For more about notmuch, see http://notmuchmail.org"
+# This is a chain of dependencies rather than a simple list simply to
+# avoid the messages getting interleaved in the case of a parallel
+# make invocation.
+.PHONY: verify-source-tree-and-version
+verify-source-tree-and-version: verify-no-dirty-code
+
.PHONY: verify-no-dirty-code
-verify-no-dirty-code: verify-version
+verify-no-dirty-code: verify-version-debian
ifeq ($(IS_GIT),yes)
@printf "Checking that source tree is clean..."
ifneq ($(shell git ls-files -m),)
@@ -148,8 +154,17 @@ else
endif
endif
-.PHONY: verify-version
-verify-version:
+.PHONY: verify-version-debian
+verify-version-debian: verify-version-components
+ @echo -n "Checking that Debian package version is $(VERSION)..."
+ @if [ "$(VERSION)" != $$(dpkg-parsechangelog | grep ^Version | awk '{print $$2}') ] ; then \
+ (echo "No." && \
+ echo "Please edit version and debian/changelog 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..."
@if echo $(VERSION) | grep -q -v -x '[0-9.]*'; then \
(echo "No." && \
diff --git a/RELEASING b/RELEASING
index e438a1d0..70a2ec54 100644
--- a/RELEASING
+++ b/RELEASING
@@ -72,6 +72,7 @@ repository. From here, there are just a few steps to release:
5) Run "make release" which will perform the following steps:
* Ensure that the version consists only of digits and periods
+ * Ensure that version and debian/changelog have the same version
* Verify that the source tree is clean
* Compile the current notmuch code (aborting release if it fails)
* Run the notmuch test suite (aborting release if it fails)