13200: Fix python versioning for arvados-python-client and arvados-cwl-runner
[arvados.git] / sdk / cwl / setup.py
index 9c0e9e0f52c37d61bb3acca57bbb45b659446fcd..d67b5ed47da71881a4ac1d075158ae4c4744f64d 100644 (file)
@@ -5,36 +5,37 @@
 
 import os
 import sys
-import subprocess
-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")
 
-versionfile = os.path.join(SETUP_DIR, "arvados_cwl/_version.py")
-try:
-    gitinfo = subprocess.check_output(
-        ['git', 'log', '--first-parent', '--max-count=1',
-         '--format=format:%H', gittaggers.choose_version_from()]).strip()
-    with open(versionfile, "w") as f:
-        f.write("__version__ = '%s'\n" % gitinfo)
-except Exception as e:
-    # When installing from package, it won't be part of a git repository, and
-    # check_output() will raise an exception.  But the package should include the
-    # version file, so we can proceed.
-    if not os.path.exists(versionfile):
-        raise
+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_cwl", env_version)
+else:
+    try:
+        import arvados_version
+        vtag = arvados_version.VersionInfoFromGit()
+        save_version("arvados_cwl", vtag.git_latest_tag() + vtag.git_timestamp_tag())
+    except ImportError:
+        pass
+
+version = read_version("arvados_cwl")
 
 setup(name='arvados-cwl-runner',
-      version='1.0',
+      version=version,
       description='Arvados Common Workflow Language runner',
       long_description=open(README).read(),
       author='Arvados',
@@ -51,19 +52,18 @@ setup(name='arvados-cwl-runner',
       # Note that arvados/build/run-build-packages.sh looks at this
       # file to determine what version of cwltool and schema-salad to build.
       install_requires=[
-          'cwltool==1.0.20170810192106',
-          'schema-salad==2.6.20170712194300',
+          'cwltool==1.0.20180326152342',
+          'schema-salad==2.6.20171201034858',
           'typing==3.5.3.0',
           'ruamel.yaml==0.13.7',
           'arvados-python-client>=0.1.20170526013812',
           'setuptools',
-          'ciso8601',
+          'ciso8601 >=1.0.0, <=1.0.4',
       ],
       data_files=[
           ('share/doc/arvados-cwl-runner', ['LICENSE-2.0.txt', 'README.rst']),
       ],
       test_suite='tests',
       tests_require=['mock>=1.0'],
-      zip_safe=True,
-      cmdclass={'egg_info': tagger},
+      zip_safe=True
       )