From 8d0735b89e4391a23c5525b6eaa84ddc073eef57 Mon Sep 17 00:00:00 2001 From: Carsten Dominik Date: Tue, 20 Jul 2010 16:16:13 +0200 Subject: [PATCH] Reorder Makefile OK, we finally have a make file where I can do a complete release, including all the git updates on master and maint branches, with a single command: make release TAG=N.NN It is important that the working directory is clean when calling this command. Since this command can fail and then leave the git repo in an uncertain state, it is best to first run this: make testrelease This will create a throw-away branch "testrelease" and try alll the commands there, to make sure everything is fine. --- Makefile | 93 ++++++++++++++++++++++++++------------------------------ 1 file changed, 43 insertions(+), 50 deletions(-) diff --git a/Makefile b/Makefile index db98f9322..98b73575b 100644 --- a/Makefile +++ b/Makefile @@ -272,6 +272,41 @@ pdf: doc/org.pdf doc/orgguide.pdf card: doc/orgcard.pdf doc/orgcard_letter.pdf doc/orgcard.txt +testrelease: + git checkout -b testrelease maint + git merge -s recursive -X theirs master + UTILITIES/set-version.pl testing + git commit -a -m "Release testing" + make distfile TAG=testversion + make cleanrel + rm -rf org-testversion* + git reset --hard + git checkout master + git branch -D testrelease + +release: + git checkout maint + git merge -s recursive -X theirs master + UTILITIES/set-version.pl $(TAG) + git commit -a -m "Release $(TAG)" + make relup TAG=$(TAG) + make cleanrel + rm -rf org-$(TAG) + rm org-$(TAG)*.zip + rm org-$(TAG)*.tar.gz + make pushreleasetag TAG=$(TAG) + git push origin maint + git checkout master + UTILITIES/set-version.pl -o $(TAG) + git commit -a -m "Update website to show $(TAG) as current release" + git push + make updateweb + +relup: + ${MAKE} makerelease + ${MAKE} upload_release + ${MAKE} upload_manual + distfile: @if [ "X$(TAG)" = "X" ]; then echo "*** No tag ***"; exit 1; fi touch doc/org.texi doc/orgcard.tex # force update @@ -315,44 +350,15 @@ upload_manual: rsync -avuz --delete doc/manual/ cdominik@orgmode.org:orgmode.org/manual/ rsync -avuz --delete doc/guide/ cdominik@orgmode.org:orgmode.org/guide/ -relup0: - ${MAKE} makerelease - ${MAKE} upload_release +cleanall: + ${MAKE} clean + rm -f lisp/org-install.el -relup: - ${MAKE} makerelease - ${MAKE} upload_release - ${MAKE} upload_manual - -testrelease: - git checkout -b testrelease maint - git merge -s recursive -X theirs master - UTILITIES/set-version.pl testing - git commit -a -m "Release testing" - make distfile TAG=testversion - make cleanrel - rm -rf org-testversion* - git reset --hard - git checkout master - git branch -D testrelease - -release: - git checkout maint - git merge -s recursive -X theirs master - UTILITIES/set-version.pl $(TAG) - git commit -a -m "Release $(TAG)" - make relup TAG=$(TAG) - make cleanrel - rm -rf org-$(TAG) - rm org-$(TAG)*.zip - rm org-$(TAG)*.tar.gz - make pushreleasetag TAG=$(TAG) - git push origin maint - git checkout master - UTILITIES/set-version.pl -o $(TAG) - git commit -a -m "Update website to show $(TAG) as current release" - git push - make updateweb +clean: + ${MAKE} cleanelc + ${MAKE} cleandoc + ${MAKE} cleanrel + rm -f *~ */*~ */*/*~ cleancontrib: find contrib -name \*~ -exec rm {} \; @@ -371,16 +377,6 @@ cleanrel: rm -rf org-6.* rm -rf org-6*zip org-6*tar.gz -clean: - ${MAKE} cleanelc - ${MAKE} cleandoc - ${MAKE} cleanrel - rm -f *~ */*~ */*/*~ - -cleanall: - ${MAKE} clean - rm -f lisp/org-install.el - .el.elc: $(ELC) $< @@ -396,9 +392,6 @@ pushreleasetag: git-tag -m "Adding release tag" -a release_$(TAG) git-push git+ssh://repo.or.cz/srv/git/org-mode.git release_$(TAG) -dummy: - echo ${prefix} - # Dependencies lisp/org.elc: lisp/org-macs.el lisp/org-compat.el lisp/org-faces.el