From 46a176a741ad4d19d81946b4232c0c26fb8bdbc8 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 29 Aug 2009 12:45:45 -0700 Subject: GNUmakefile: "release" steps --- GNUmakefile | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) (limited to 'GNUmakefile') diff --git a/GNUmakefile b/GNUmakefile index 3481564..913f821 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -32,6 +32,45 @@ test: test-ext test-pure Manifest.txt: git ls-files > $@+ cmp $@+ $@ || mv $@+ $@ - $(RM) -f $@+ + $(RM) $@+ -.PHONY: test doc Manifest.txt +VERSION := $(shell git describe 2>/dev/null | sed 's/^v//') + +ifneq ($(VERSION),) +v := /^v$(VERSION)$$/ +vPREV := $(shell git tag -l 2>/dev/null | sed -n -e '$(v)!h' -e '$(v){x;p;q}') +release_notes := release_notes-$(VERSION).txt +release_changes := release_changes-$(VERSION).txt +$(release_changes): verify + git diff --stat $(vPREV) v$(VERSION) > $@+ + echo >> $@+ + git log $(vPREV) v$(VERSION) >> $@+ + $(VISUAL) $@+ && test -s $@+ && mv $@+ $@ +$(release_notes): verify package + gem spec pkg/clogger-$(VERSION).gem description | sed -ne '/\w/p' > $@+ + git cat-file tag v$(VERSION) | awk 'p>1{print $$0}/^$$/{++p}' >> $@+ + $(VISUAL) $@+ && test -s $@+ && mv $@+ $@ +verify: + @test -n "$(VERSION)" || { echo >&2 VERSION= not defined; exit 1; } + git rev-parse --verify refs/tags/v$(VERSION)^{} + @test -n "$(VISUAL)" || { echo >&2 VISUAL= not defined; exit 1; } + +package: verify + git diff-index --quiet HEAD^0 + test `git rev-parse --verify HEAD^0` = \ + `git rev-parse --verify refs/tags/v$(VERSION)^{}` + $(RM) -r pkg + unset CLOGGER_EXT; rake package VERSION=$(VERSION) + CLOGGER_EXT=1 rake package VERSION=$(VERSION) + +# not using Hoe's release system since we release 2 gems but only one tgz +release: package Manifest.txt $(release_notes) $(release_changes) + rubyforge add_release -f -n $(release_notes) -c $(release_changes) \ + clogger clogger $(VERSION) pkg/clogger-$(VERSION).gem + rubyforge add_file \ + clogger clogger $(VERSION) pkg/clogger-$(VERSION).tgz + rubyforge add_release -f -n $(release_notes) -c $(release_changes) \ + clogger clogger_ext $(VERSION) pkg/clogger_ext-$(VERSION).gem +endif + +.PHONY: test doc Manifest.txt release -- cgit v1.2.3-24-ge0c7