13200: Fix python versioning for arvados-python-client and arvados-cwl-runner
[arvados.git] / sdk / python / setup.py
index 5387b0232ab47ae74f5e9c125915b796ecfe1d96..a19b876fd3f1de647004e23ae2095feeed08fc4d 100644 (file)
@@ -1,19 +1,38 @@
 #!/usr/bin/env python
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
 
 import os
 import sys
-import setuptools.command.egg_info as egg_info_cmd
+import re
 
 from setuptools import setup, find_packages
 
 SETUP_DIR = os.path.dirname(__file__) or '.'
 README = os.path.join(SETUP_DIR, 'README.rst')
 
-try:
-    import gittaggers
-    tagger = gittaggers.EggInfoFromGit
-except ImportError:
-    tagger = egg_info_cmd.egg_info
+env_version = os.environ.get("ARVADOS_BUILDING_VERSION")
+
+def save_version(module, v):
+  with open(os.path.join(SETUP_DIR, module, "_version.py"), 'w') as fp:
+      return fp.write("__version__ = '%s'\n" % v)
+
+def read_version(module):
+  with open(os.path.join(SETUP_DIR, module, "_version.py"), 'r') as fp:
+      return re.match("__version__ = '(.*)'$", fp.read()).groups()[0]
+
+if env_version:
+    save_version("arvados", env_version)
+else:
+    try:
+        import arvados_version
+        vtag = arvados_version.VersionInfoFromGit()
+        save_version("arvados", vtag.git_latest_tag() + vtag.git_timestamp_tag())
+    except ImportError:
+        pass
+
+version = read_version("arvados")
 
 short_tests_only = False
 if '--short-tests-only' in sys.argv:
@@ -21,7 +40,7 @@ if '--short-tests-only' in sys.argv:
     sys.argv.remove('--short-tests-only')
 
 setup(name='arvados-python-client',
-      version='0.1',
+      version=version,
       description='Arvados client library',
       long_description=open(README).read(),
       author='Arvados',
@@ -45,16 +64,16 @@ setup(name='arvados-python-client',
           ('share/doc/arvados-python-client', ['LICENSE-2.0.txt', 'README.rst']),
       ],
       install_requires=[
-          'google-api-python-client==1.6.2, <1.7',
-          'ciso8601',
-          'httplib2 >= 0.9.2',
+          'ciso8601 >=1.0.0, <=1.0.4',
+          'future',
+          'google-api-python-client >=1.6.2, <1.7',
+          'httplib2 >=0.9.2',
           'pycurl >=7.19.5.1',
+          'ruamel.yaml >=0.13.7',
           'setuptools',
-          'ws4py<0.4',
-          'ruamel.yaml>=0.13.7'
+          'ws4py <0.4',
       ],
       test_suite='tests',
       tests_require=['pbr<1.7.0', 'mock>=1.0', 'PyYAML'],
-      zip_safe=False,
-      cmdclass={'egg_info': tagger},
+      zip_safe=False
       )