From b26be19d7804765251e850724a38d6a7f7806f4c Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Mon, 13 May 2013 16:40:25 +0200 Subject: [PATCH] setup.py: use get_version --- portail_citoyen/__init__.py | 2 ++ setup.py | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/portail_citoyen/__init__.py b/portail_citoyen/__init__.py index 4eca131..7a1d20e 100644 --- a/portail_citoyen/__init__.py +++ b/portail_citoyen/__init__.py @@ -1,6 +1,8 @@ import os.path import sys +__version__ = '0.1' + apps_dir = os.path.join(os.path.dirname(__file__), 'apps') if apps_dir not in sys.path: sys.path.append(apps_dir) diff --git a/setup.py b/setup.py index 58430f3..0f5bb11 100755 --- a/setup.py +++ b/setup.py @@ -44,8 +44,39 @@ class install_lib(_install_lib): self.run_command('compile_translations') _install_lib.run(self) +def get_version(): + import glob + import re + import os + + version = None + for d in glob.glob('*'): + if not os.path.isdir(d): + continue + module_file = os.path.join(d, '__init__.py') + if not os.path.exists(module_file): + continue + for v in re.findall("""__version__ *= *['"](.*)['"]""", + open(module_file).read()): + assert version is None + version = v + if version: + break + assert version is not None + if os.path.exists('.git'): + import subprocess + p = subprocess.Popen(['git','describe'], + stdout=subprocess.PIPE) + result = p.communicate()[0] + assert p.returncode == 0, 'git returned non-zero' + new_version = result.split()[0] + assert new_version.split('-')[0] == version, '__version__ must match the last git annotated tag' + version = new_version.replace('-', '.') + return version + + setup(name="portail_citoyen", - version=0.1, + version=get_version(), license="AGPLv3 or later", description="Portail citoyen", url="http://dev.entrouvert.org/projects/portail-citoyen/",