X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f51c721f97c6e5ef4fda47e6d0fc45cdd2c2b77d..49030c3161523bc427e0aaa9d3edb517fc4c296c:/sdk/python/setup.py diff --git a/sdk/python/setup.py b/sdk/python/setup.py index e0afe89a81..754d89bdad 100644 --- a/sdk/python/setup.py +++ b/sdk/python/setup.py @@ -1,10 +1,32 @@ #!/usr/bin/env python import os +import subprocess +import time from setuptools import setup, find_packages +from setuptools.command.egg_info import egg_info + +SETUP_DIR = os.path.dirname(__file__) +README = os.path.join(SETUP_DIR, 'README.rst') + +class TagBuildWithCommit(egg_info): + """Tag the build with the sha1 and date of the last git commit. + + If a build tag has already been set (e.g., "egg_info -b", building + from source package), leave it alone. + """ + def tags(self): + if self.tag_build is None: + git_tags = subprocess.check_output( + ['git', 'log', '--first-parent', '--max-count=1', + '--format=format:%ct %h', SETUP_DIR]).split() + assert len(git_tags) == 2 + git_tags[0] = time.strftime( + '%Y%m%d%H%M%S', time.gmtime(int(git_tags[0]))) + self.tag_build = '.{}+{}'.format(*git_tags) + return egg_info.tags(self) -README = os.path.join(os.path.dirname(__file__), 'README.rst') setup(name='arvados-python-client', version='0.1', @@ -17,20 +39,25 @@ setup(name='arvados-python-client', license='Apache 2.0', packages=find_packages(), scripts=[ + 'bin/arv-copy', 'bin/arv-get', 'bin/arv-keepdocker', 'bin/arv-ls', 'bin/arv-normalize', 'bin/arv-put', - 'bin/arv-ws', + 'bin/arv-run', + 'bin/arv-ws' ], install_requires=[ 'python-gflags', 'google-api-python-client', 'httplib2', + 'requests>=2.4', 'urllib3', 'ws4py' ], test_suite='tests', tests_require=['mock>=1.0', 'PyYAML'], - zip_safe=False) + zip_safe=False, + cmdclass={'egg_info': TagBuildWithCommit}, + )