-.PHONY: verify-version
-verify-version:
- @echo -n "Checking that $(VERSION) is a two-component version..."
- @if echo $(VERSION) | grep -q -v -x '[0-9]*\.[0-9]*'; then \
- (echo "Ouch." && \
- echo "Before releasing the notmuch version should be a two-component value." && false);\
- else :; fi
+.PHONY: verify-no-dirty-code
+verify-no-dirty-code: verify-version-debian verify-version-python verify-version-manpage
+ifeq ($(IS_GIT),yes)
+ @printf "Checking that source tree is clean..."
+ifneq ($(shell git ls-files -m),)
+ @echo "No"
+ @echo "The following files have been modified since the most recent git commit:"
+ @echo ""
+ @git ls-files -m
+ @echo ""
+ @echo "The release will be made from the committed state, but perhaps you meant"
+ @echo "to commit this code first? Please clean this up to make it more clear."
+ @false
+else
+ @echo "Good"
+endif
+endif
+
+.PHONY: verify-version-debian
+verify-version-debian: verify-version-components
+ @echo -n "Checking that Debian package version is $(VERSION)-1..."
+ @[ "$(VERSION)-1" = $$(sed '1{ s/).*//; s/.*(//; q; }' debian/changelog) ] || \
+ (echo "No." && \
+ echo "Please edit version and debian/changelog to have consistent versions." && false)
+ @echo "Good."
+
+.PHONY: verify-version-python
+verify-version-python: verify-version-components
+ @echo -n "Checking that python bindings version is $(VERSION)..."
+ @[ "$(VERSION)" = $$(python -c "execfile('$(PV_FILE)'); print __VERSION__") ] || \
+ (echo "No." && \
+ echo "Please edit version and $(PV_FILE) to have consistent versions." && false)
+ @echo "Good."
+
+.PHONY: verify-version-components
+verify-version-components:
+ @echo -n "Checking that $(VERSION) consists only of digits and periods..."
+ @echo $(VERSION) | grep -q -x '^[0-9.]*$$' || \
+ (echo "No." && \
+ echo "Please follow the instructions in RELEASING to choose a version" && false)