From 06235a54dfa607b2bb7e1370bf5f9b398312f2d6 Mon Sep 17 00:00:00 2001
From: Erwan Jahier <jahier@imag.fr>
Date: Tue, 2 Feb 2016 10:00:08 +0100
Subject: [PATCH] Add a Makefile.dev for developpers and make sure the version
 number is always correct.

---
 Makefile         | 29 ++----------------
 Makefile.dev     | 77 ++++++++++++++++++++++++++++++++++++++++++++++++
 Makefile.version |  1 -
 doc/version.tex  |  4 +--
 src/META         |  4 +--
 5 files changed, 84 insertions(+), 31 deletions(-)
 create mode 100644 Makefile.dev

diff --git a/Makefile b/Makefile
index 4e26e3a..02defde 100644
--- a/Makefile
+++ b/Makefile
@@ -36,35 +36,12 @@ distclean:
 	ocaml setup.ml -distclean
 	rm -rf _build/src
 
-###############################
-# tags
 
-OTAGS=otags
-# otags don't manage to parse gnuplotRif.ml
-NO_TAGS=gnuplotRif.ml
-tags:
-	$(OTAGS) -v $(shell ocamlc -where)/*.mli  $(shell ls src/*.ml | grep -v $(NO_TAGS))
 
 ###############################
-# opam-ing
-
-NAME=lutils
-PACKNAME=$(NAME).$(VERSION)
-WWW=/import/www/DIST-TOOLS/SYNCHRONE
-HTTP=http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE
-
-$(PACKNAME).tgz:
-	git archive --prefix=$(PACKNAME)/ -o $(PACKNAME).tgz HEAD
-
-$(WWW)/pool/$(PACKNAME).tgz: $(PACKNAME).tgz
-	mv $^ $@ 
-
-
-opam : $(WWW)/pool/$(PACKNAME).tgz
-	cd $(WWW)/opam-repository/packages && \
-	oasis2opam   $(HTTP)/pool/$(PACKNAME).tgz && \
-	cd .. ; opam-admin check  && opam-admin make -g
-
+# for developpers
+include ./Makefile.dev
 
+# not gitted stuff
 -include ./Makefile.local
 
diff --git a/Makefile.dev b/Makefile.dev
new file mode 100644
index 0000000..b265cf2
--- /dev/null
+++ b/Makefile.dev
@@ -0,0 +1,77 @@
+#######################################################################################
+# Workflow:
+# C=git commit ;  A=git amend ; U=update_version ; O=opam pack
+# to make sure the sha and the version are good, one should never
+# do U and then A.
+# to avoid such problems, legal trace are defined by this automata:
+# 0 -C-> 1
+# 1 -P-> 1
+# 1 -A-> 1
+# 1 -U-> 0
+# to implement such a workflow, C puts a lock (state 1) and U removes it (state 0)
+
+
+###############################
+# a few git shortcuts
+
+uv:update_version
+update_version:
+	rm -f src/lutilsVersion.ml
+	make src/lutilsVersion.ml
+	cp _oasis _oasis.save
+	cat _oasis.save | sed "s/^Version:.*/Version:     $(VERSION)/" > _oasis
+	rm -f committed
+	make clean && make
+
+cia:
+	test -f committed && \
+   echo "*** I won't commit!\n*** until you 'make update_version'!" \
+      || (git commit -a -F log && touch committed)
+
+ci:
+	test -f committed  && \
+   echo "*** I won't commit!\n*** until you 'make update_version'!" \
+      || (git commit  -F log && touch committed)
+
+amend:
+	test -f committed && git commit -a -F log --amend 
+
+
+###############################
+# forge
+
+push:
+	git push git+ssh://$(USER)@scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/git/lutils/lutils.git
+
+pull:
+	git pull git+ssh://$(USER)@scm.forge.imag.fr/var/lib/gforge/chroot/scmrepos/git/lutils/lutils.git
+
+
+#############################
+# tags
+
+OTAGS=otags
+# otags don't manage to parse gnuplotRif.ml
+NO_TAGS=gnuplotRif.ml
+tags:
+	$(OTAGS) -v $(shell ocamlc -where)/*.mli  $(shell ls src/*.ml | grep -v $(NO_TAGS))
+
+###############################
+# opam-ing
+
+NAME=lutils
+PACKNAME=$(NAME).$(VERSION)
+WWW=/import/www/DIST-TOOLS/SYNCHRONE
+HTTP=http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE
+
+$(PACKNAME).tgz:
+	git archive --prefix=$(PACKNAME)/ -o $(PACKNAME).tgz HEAD
+
+$(WWW)/pool/$(PACKNAME).tgz: $(PACKNAME).tgz
+	mv $^ $@ 
+
+
+opam : $(WWW)/pool/$(PACKNAME).tgz
+	cd $(WWW)/opam-repository/packages && \
+	oasis2opam   $(HTTP)/pool/$(PACKNAME).tgz && \
+	cd .. ; opam-admin check  && opam-admin make -g
diff --git a/Makefile.version b/Makefile.version
index 28a0a08..f9e635d 100644
--- a/Makefile.version
+++ b/Makefile.version
@@ -4,7 +4,6 @@ SHA:=$(shell git log -1 --pretty=format:"%h")
 COMMIT_NB:=$(shell git log --pretty=oneline  | wc -l)
 
 
-
 VERSION:=1.$(COMMIT_NB)
 
 
diff --git a/doc/version.tex b/doc/version.tex
index d802caf..59584d9 100644
--- a/doc/version.tex
+++ b/doc/version.tex
@@ -1,4 +1,4 @@
 \newcommand{\version}{1.4}
-\newcommand{\sha}{f76bf61}
+\newcommand{\sha}{4f6f011}
 \newcommand{\versionname}{none}
-\newcommand{\versiondate}{28-01-16}
+\newcommand{\versiondate}{02-02-16}
diff --git a/src/META b/src/META
index 1a47317..f436f13 100644
--- a/src/META
+++ b/src/META
@@ -1,6 +1,6 @@
 # OASIS_START
-# DO NOT EDIT (digest: dbea03afd5beab572192d8711a6cda76)
-version = "1.0"
+# DO NOT EDIT (digest: 001f58193d137e873d0b1451c9b716bc)
+version = "1.4"
 description = "shared by Verimag/synchronous tools (lustre, lutin, rdbg)."
 requires = "unix str camlp4 num"
 archive(byte) = "lutils.cma"
-- 
GitLab