On Tue, 06 Apr 2010 18:11:28 +0200, Michal Sojka wrote: > On Tue, 06 Apr 2010, Sebastian Spaeth wrote: > > > But, there are people without git installed that download the release > > tarball. So if this patch makes it, we need to replace this with a > > static version number when baking a release tar. > > Right, here is an updated patch. It's more complicated than the previous > one, but it solves the issue. I like this idea, definitely. But the other piece needed here is a way for me to be able to specify a version in order to release. In my current release instructions (notmuch/RELEASING) I do that by manually incrementing the version number in the Makefile. Then a tag is created later when the "make release" target runs. It would be possible for me to instead create the tag to specify the version, but there's a few things I don't like about this: 1. After I increment the version number (early in the release process) I often find one or two little things I need to change to make the release perfect. So there are likely more commits later, but I obviously don't want some git-describe version to end up in the final tar file. 2. I don't actually want to create a tag, (I *especially* don't want to push it), until the release actually happens. That's the point of the tag in my view, (to say "*this* is what I released"), so making the tag early seems wrong, (and leaves the door open to make mistakes). Any suggestion for this part? > +include Makefile.version > + > +.PHONY: Makefile.version > +Makefile.version: > + echo VERSION=$(if $(wildcard version),`cat version`,`git describe --dirty`) > $@ Could that be simplified to just use $(shell) rather than a separate file and an include? I suppose what we could do is to just have the creation of the version file be part of the release process. That would be simple enough. Then we could drop this rule: > +version: > + git describe > $@ What do you think? -Carl