setup.py: set distribution.metadata.version from _version.py if we couldn't find it from git.

This simplifies reporting when we don't have the version. Also print the normalized version. refs #2340

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2014-11-21 08:38:37 +00:00
parent b43447003e
commit 2eeb8ee6f5

View File

@ -351,13 +351,19 @@ class UpdateVersion(Command):
def finalize_options(self): def finalize_options(self):
pass pass
def run(self): def run(self):
global version
verstr = version
if os.path.isdir(os.path.join(basedir, ".git")): if os.path.isdir(os.path.join(basedir, ".git")):
verstr = self.try_from_git() verstr = self.try_from_git()
else:
print("no version-control data found, leaving _version.py alone")
return
if verstr: if verstr:
self.distribution.metadata.version = verstr self.distribution.metadata.version = verstr
else:
print("""\
********************************************************************
Warning: no version information found. This may cause tests to fail.
********************************************************************
""")
def try_from_git(self): def try_from_git(self):
versions = versions_from_git("allmydata-tahoe-") versions = versions_from_git("allmydata-tahoe-")
@ -371,7 +377,7 @@ class UpdateVersion(Command):
"branch": versions["branch"], "branch": versions["branch"],
}) })
f.close() f.close()
print("git-version: wrote '%s' into '%s'" % (versions["version"], VERSION_PY_FILENAME)) print("Wrote normalized version %r into '%s'" % (versions["normalized"], VERSION_PY_FILENAME))
return versions.get("normalized", None) return versions.get("normalized", None)