#!/usr/bin/env python
import os
-import subprocess
-import time
+import sys
+import setuptools.command.egg_info as egg_info_cmd
from setuptools import setup, find_packages
-from setuptools.command.egg_info import egg_info
SETUP_DIR = os.path.dirname(__file__) or "."
+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)
-
+try:
+ import gittaggers
+ tagger = gittaggers.EggInfoFromGit
+except ImportError:
+ tagger = egg_info_cmd.egg_info
setup(name='arvados-node-manager',
version='0.1',
description='Arvados compute node manager',
- long_description=open(os.path.join(SETUP_DIR, 'README.rst')).read(),
+ long_description=open(README).read(),
author='Arvados',
author_email='info@arvados.org',
url="https://arvados.org",
license='GNU Affero General Public License, version 3.0',
packages=find_packages(),
+ scripts=['bin/arvados-node-manager'],
+ data_files=[
+ ('share/doc/arvados-node-manager', ['agpl-3.0.txt', 'README.rst']),
+ ],
install_requires=[
- 'apache-libcloud',
- 'arvados-python-client',
+ 'apache-libcloud>=0.16',
+ 'arvados-python-client>=0.1.20150206225333',
'pykka',
'python-daemon',
],
- scripts=['bin/arvados-node-manager'],
+ dependency_links = [
+ "https://github.com/curoverse/libcloud/archive/apache-libcloud-0.18.1.dev4.zip"
+ ],
test_suite='tests',
- tests_require=['mock>=1.0'],
+ tests_require=['pbr<1.7.0', 'mock>=1.0', "apache-libcloud==0.18.1.dev4"],
zip_safe=False,
- cmdclass={'egg_info': TagBuildWithCommit},
+ cmdclass={'egg_info': tagger},
)