From d56c1f5bb813d53a9c3c9b2d4bdb38c02e848d08 Mon Sep 17 00:00:00 2001 From: j Date: Wed, 6 Jun 2018 14:22:48 +0200 Subject: [PATCH] include git commit count in version and update in setup.py --- .gitignore | 1 + setup.py | 24 ++++++++++++++++++++---- shared/multilingual/__init__.py | 9 ++++++++- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 98e94cd..4dd8aba 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ build dist __pycache__ +_version.py diff --git a/setup.py b/setup.py index 34291a9..3515cfc 100644 --- a/setup.py +++ b/setup.py @@ -1,14 +1,30 @@ #!/usr/bin/env python from io import open -import os from setuptools import setup, find_packages +import os +import re +import subprocess def get_version(prefix): - import re - with open(os.path.join(prefix, '__init__.py')) as fd: - metadata = dict(re.findall("__([a-z]+)__ = '([^']+)'", fd.read())) + if os.path.exists('.git'): + parts = subprocess.check_output(['git', 'describe', '--tags']).decode().strip().split('-') + version = '{}.{}+{}'.format(*parts) + version_py = "__version__ = '{}'".format(version) + _version = os.path.join(prefix, '_version.py') + if not os.path.exists(_version) or open(_version).read().strip() != version_py: + with open(_version, 'w') as fd: + fd.write(version_py) + return version + else: + for f in ('_version.py', '__init__.py'): + f = os.path.join(prefix, f) + if os.path.exists(f): + with open(f) as fd: + metadata = dict(re.findall("__([a-z]+)__ = '([^']+)'", fd.read())) + if 'version' in metadata: + break return metadata['version'] diff --git a/shared/multilingual/__init__.py b/shared/multilingual/__init__.py index be18b88..e8e64d7 100644 --- a/shared/multilingual/__init__.py +++ b/shared/multilingual/__init__.py @@ -1,4 +1,11 @@ from __future__ import unicode_literals __version__ = '0.1.1' -VERSION = tuple(int(d) for d in __version__.split('.')) + +try: + from ._version import __version__ +except ImportError: + pass + +VERSION = __version__.split('+') +VERSION = tuple(list(map(int, VERSION[0].split('.'))) + VERSION[1:])