From cf37fffc117cb2eec0f69a3cee2d916a9972c9a2 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Thu, 1 Sep 2011 19:35:31 -0400 Subject: [PATCH] Switches to Zooko's version method This centralizes the version number into a single place but makes it available in the code as well as in setup.py. Based on the recipe found at http://stackoverflow.com/questions/458550/standard-way-to-embed-version-into-python-package/7071358#7071358 --- mediagoblin/__init__.py | 1 + mediagoblin/_version.py | 17 +++++++++++++++++ setup.py | 20 ++++++++++++++++++-- 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 mediagoblin/_version.py diff --git a/mediagoblin/__init__.py b/mediagoblin/__init__.py index dec83661..90377fae 100644 --- a/mediagoblin/__init__.py +++ b/mediagoblin/__init__.py @@ -14,3 +14,4 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +from mediagoblin._version import __version__ diff --git a/mediagoblin/_version.py b/mediagoblin/_version.py new file mode 100644 index 00000000..eb34321e --- /dev/null +++ b/mediagoblin/_version.py @@ -0,0 +1,17 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +__version__ = "0.0.5" diff --git a/setup.py b/setup.py index d6ef584b..c09e535b 100644 --- a/setup.py +++ b/setup.py @@ -15,10 +15,26 @@ # along with this program. If not, see . from setuptools import setup, find_packages +import os +import re + +READMEFILE = "README" +VERSIONFILE = os.path.join("mediagoblin", "_version.py") +VSRE = r"^__version__ = ['\"]([^'\"]*)['\"]" + + +def get_version(): + verstrline = open(VERSIONFILE, "rt").read() + mo = re.search(VSRE, verstrline, re.M) + if mo: + return mo.group(1) + else: + raise RuntimeError("Unable to find version string in %s." % VERSIONFILE) + setup( name = "mediagoblin", - version = "0.0.4", + version = get_version(), packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), zip_safe=False, # scripts and dependencies @@ -73,7 +89,7 @@ setup( author_email='cwebber@gnu.org', url="http://mediagoblin.org/", download_url="http://mediagoblin.org/download/", - long_description=open('README').read(), + long_description=open(READMEFILE).read(), classifiers=[ "Development Status :: 3 - Alpha", "Environment :: Web Environment", -- 2.25.1