Switches to Zooko's version method
authorWill Kahn-Greene <willg@bluesock.org>
Thu, 1 Sep 2011 23:35:31 +0000 (19:35 -0400)
committerWill Kahn-Greene <willg@bluesock.org>
Fri, 2 Sep 2011 00:50:19 +0000 (20:50 -0400)
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
mediagoblin/_version.py [new file with mode: 0644]
setup.py

index dec83661b5e4ce4c35a54feeb8db964cbf0a9533..90377fae594fbb5ef08a249558e62681a2d74e79 100644 (file)
@@ -14,3 +14,4 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+from mediagoblin._version import __version__
diff --git a/mediagoblin/_version.py b/mediagoblin/_version.py
new file mode 100644 (file)
index 0000000..eb34321
--- /dev/null
@@ -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 <http://www.gnu.org/licenses/>.
+
+__version__ = "0.0.5"
index d6ef584b44f32df566d6f1019ceb7349022dc67a..c09e535b5a62bbb36f5fd431b7e042e6c805f1e6 100644 (file)
--- a/setup.py
+++ b/setup.py
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 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",