diff --git a/horizons/constants.py b/horizons/constants.py index c2ee0deedf..3c8be8533e 100644 --- a/horizons/constants.py +++ b/horizons/constants.py @@ -55,9 +55,8 @@ def get_git_version(): git = "git.exe" # Note that this uses glob patterns, not regular expressions. - # TAG_STRUCTURE = "20[0-9][0-9].[0-9]*" - # describe = [git, "describe", "--tags", TAG_STRUCTURE] - describe = [git, "describe", "--tags"] + TAG_STRUCTURE = "20[0-9][0-9].[0-9]*" + describe = [git, "describe", "--tags", "--match", TAG_STRUCTURE] git_string = subprocess.check_output(describe, cwd=uh_path, universal_newlines=True).rstrip('\n') return git_string except (subprocess.CalledProcessError, RuntimeError): diff --git a/setup.py b/setup.py index 6a237a8749..d18896c698 100755 --- a/setup.py +++ b/setup.py @@ -26,6 +26,7 @@ import json import os import platform +import re import sys from distutils.command.build import build from distutils.core import setup @@ -41,7 +42,7 @@ # Ensure we are in the correct directory os.chdir(os.path.realpath(os.path.dirname(__file__))) -if distro.linux_distribution(full_distribution_name=False)[0] in ('debian', 'mint', 'ubuntu'): +if distro.id() in ('debian', 'linuxmint', 'ubuntu'): executable_path = 'games' else: executable_path = 'bin' @@ -236,20 +237,29 @@ def run(self): build.sub_commands.append(('build_i18n', None)) cmdclass = { - 'build_i18n': _build_i18n, + 'build_i18n': _build_i18n, } + +def _get_pep440_compliant_version(git_describe_output): + pattern = r'(20[\d]{2}\.[\d]+)(?:-([\d]+)-g[0-f]+)?' + if '-g' in git_describe_output: + return re.sub(pattern, r'\1.dev\2', git_describe_output) # git revision count since tag + else: + return re.sub(pattern, r'\1', git_describe_output) # just the tag itself, no suffix + + setup( - name='UnknownHorizons', - version=VERSION.RELEASE_VERSION, - description='Realtime Economy Simulation and Strategy Game', - author='The Unknown Horizons Team', - author_email='team@unknown-horizons.org', - url='http://www.unknown-horizons.org', - packages=packages, - package_data=package_data, - data_files=data, - cmdclass=cmdclass) + name='UnknownHorizons', + version=_get_pep440_compliant_version(VERSION.RELEASE_VERSION), + description='Realtime Economy Simulation and Strategy Game', + author='The Unknown Horizons Team', + author_email='team@unknown-horizons.org', + url='http://www.unknown-horizons.org', + packages=packages, + package_data=package_data, + data_files=data, + cmdclass=cmdclass) # after installation remove gitversion.txt if os.path.exists('.git'):