From: Peter Amstutz Date: Wed, 4 Apr 2018 20:05:31 +0000 (-0400) Subject: 13200: Fix python versioning for arvados-python-client and arvados-cwl-runner X-Git-Tag: 1.1.4~4^2~4 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/196cb2e84834de79f25414de09a8d00bbe1a5eae 13200: Fix python versioning for arvados-python-client and arvados-cwl-runner New behavior: 1) If ARVADOS_BUILDING_VERSION is set, write that to _version.py 2) Else, try to import arvados_version, get version based on git tags+timestamp and write that to _version.py. arvados_version.py is present in the source tree but not included in the package, so if we get ImportError, do nothing. If neither (1) or (2) succeeds, take that to mean we're installing a source package. Leave _version.py alone. Read the version back from _version.py and use that. Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- diff --git a/.gitignore b/.gitignore index cc4f17e9ab..517166c3fb 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ services/api/config/arvados-clients.yml .DS_Store .vscode .Rproj.user +_version.py \ No newline at end of file diff --git a/sdk/cwl/arvados_cwl/_version.py b/sdk/cwl/arvados_cwl/_version.py deleted file mode 100644 index 652a29188a..0000000000 --- a/sdk/cwl/arvados_cwl/_version.py +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (C) The Arvados Authors. All rights reserved. -# -# SPDX-License-Identifier: Apache-2.0 - -import pkg_resources - -__version__ = pkg_resources.require('arvados-cwl-runner')[0].version diff --git a/sdk/cwl/setup.py b/sdk/cwl/setup.py index d1df898cd2..d67b5ed47d 100644 --- a/sdk/cwl/setup.py +++ b/sdk/cwl/setup.py @@ -5,24 +5,35 @@ 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') -tagger = egg_info_cmd.egg_info -version = os.environ.get("ARVADOS_BUILDING_VERSION") -if not version: +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_cwl", env_version) +else: try: import arvados_version vtag = arvados_version.VersionInfoFromGit() - version = vtag.git_latest_tag() + vtag.git_timestamp_tag() + 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=version, description='Arvados Common Workflow Language runner', @@ -54,6 +65,5 @@ setup(name='arvados-cwl-runner', ], test_suite='tests', tests_require=['mock>=1.0'], - zip_safe=True, - cmdclass={'egg_info': tagger}, + zip_safe=True ) diff --git a/sdk/python/arvados/_version.py b/sdk/python/arvados/_version.py deleted file mode 100644 index 3f7330fa7a..0000000000 --- a/sdk/python/arvados/_version.py +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (C) The Arvados Authors. All rights reserved. -# -# SPDX-License-Identifier: Apache-2.0 - -import pkg_resources - -__version__ = pkg_resources.require('arvados-python-client')[0].version diff --git a/sdk/python/setup.py b/sdk/python/setup.py index 1adc19f997..a19b876fd3 100644 --- a/sdk/python/setup.py +++ b/sdk/python/setup.py @@ -5,23 +5,35 @@ 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') -tagger = egg_info_cmd.egg_info -version = os.environ.get("ARVADOS_BUILDING_VERSION") -if not version: +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() - version = vtag.git_latest_tag() + vtag.git_timestamp_tag() + 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: short_tests_only = True @@ -63,6 +75,5 @@ setup(name='arvados-python-client', ], test_suite='tests', tests_require=['pbr<1.7.0', 'mock>=1.0', 'PyYAML'], - zip_safe=False, - cmdclass={'egg_info': tagger}, + zip_safe=False )