From 2a0ae8c3028175a5febfee2e93d7b8fc3d330232 Mon Sep 17 00:00:00 2001 From: Martin Bauer <martin.bauer@fau.de> Date: Thu, 27 Feb 2020 19:01:25 +0100 Subject: [PATCH] Fix: version number when no git is available --- setup.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 58d6cc3..0c60028 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ from distutils.version import StrictVersion def version_number_from_git(tag_prefix='release/', sha_length=10, version_format="{version}.dev{commits}+{sha}"): def get_released_versions(): - tags = sorted(subprocess.getoutput('git tag').split('\n')) + tags = sorted(subprocess.check_output(['git', 'tag'], encoding='utf-8').split('\n')) versions = [t[len(tag_prefix):] for t in tags if t.startswith(tag_prefix)] return versions @@ -17,9 +17,13 @@ def version_number_from_git(tag_prefix='release/', sha_length=10, version_format parsed_version[-1] += 1 return '.'.join(str(i) for i in parsed_version) - version_strings = get_released_versions() - version_strings.sort(key=StrictVersion) - latest_release = version_strings[-1] + try: + version_strings = get_released_versions() + version_strings.sort(key=StrictVersion) + latest_release = version_strings[-1] + except subprocess.CalledProcessError: + return open('RELEASE-VERSION', 'r').read() + commits_since_tag = subprocess.getoutput('git rev-list {}..HEAD --count'.format(tag_from_version(latest_release))) sha = subprocess.getoutput('git rev-parse HEAD')[:sha_length] is_dirty = len(subprocess.getoutput("git status --untracked-files=no -s")) > 0 @@ -32,6 +36,10 @@ def version_number_from_git(tag_prefix='release/', sha_length=10, version_format if is_dirty: version_string += ".dirty" + + with open("RELEASE-VERSION", "w") as f: + f.write(version_string) + return version_string -- GitLab