]> git.notmuchmail.org Git - notmuch/blobdiff - Makefile.local
make release: Provide a kinder message when VERSION is forgotten.
[notmuch] / Makefile.local
index e7c6300f823c76ebfd94edd9d23d4c033d2ec8ff..98d69c4d8dfa44772499c14793bb069201c2343b 100644 (file)
@@ -9,7 +9,7 @@
 # Between releases, (such as when compiling notmuch from the git
 # repository), we let git append identification of the actual commit.
 PACKAGE=notmuch
-VERSION:=$(shell if [ -f version ]; then cat version; else git describe --match '[0-9].[0-9]*'; fi)
+VERSION:=$(shell if [ -f version ]; then cat version; else git describe --match '[0-9.]*'; fi)
 
 RELEASE_HOST=notmuchmail.org
 RELEASE_DIR=/srv/notmuchmail.org/www/releases
@@ -69,14 +69,14 @@ dist: $(TAR_FILE)
 # We invoke make recursively only to force ordering of our phony
 # targets in the case of parallel invocation of make (-j).
 .PHONY: release
-release:
-       $(MAKE) verify-newer
+release: verify-version
        $(MAKE) test
        $(MAKE) $(GPG_FILE)
-       mkdir -p releases
+       $(MAKE) verify-newer
        scp $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) $(RELEASE_HOST):$(RELEASE_DIR)
-       mv $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) releases
        ssh $(RELEASE_HOST) "rm -f $(RELEASE_DIR)/LATEST-$(PACKAGE)-[0-9]* && ln -s $(TAR_FILE) $(RELEASE_DIR)/LATEST-$(PACKAGE)-$(VERSION)"
+       mkdir -p releases
+       mv $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) releases
        git tag -s -m "$(PACKAGE) $(VERSION) release" $(VERSION)
        git push origin $(VERSION)
        @echo "Please send a release announcement as follows:"
@@ -119,15 +119,19 @@ release-message:
 
 .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);\
+       @echo -n "Checking that $(VERSION) consists only of digits and periods..."
+       @if echo $(VERSION) | grep -q -v -x '[0-9.]*'; then \
+               (echo "No." && \
+                echo "Remember: You need to use:" && \
+                echo "" && \
+                echo " make VERSION=X.Y release" && \
+                echo "" && \
+                echo "to release notmuch." && false); \
         else :; fi
        @echo "Good."
 
 .PHONY: verify-newer
-verify-newer: verify-version
+verify-newer:
        @echo -n "Checking that no $(VERSION) release already exists..."
        @ssh $(RELEASE_HOST) test ! -e $(RELEASE_DIR)/$(TAR_FILE) \
                || (echo "Ouch." && echo "Found: $(RELEASE_HOST):$(RELEASE_DIR)/$(TAR_FILE)" \