13200: Consolidate package version behavior in arvados_version for all the python...
authorFernando Monserrat <fernando.monserrat@gmail.com>
Wed, 4 Apr 2018 21:42:08 +0000 (18:42 -0300)
committerFernando Monserrat <fernando.monserrat@gmail.com>
Wed, 4 Apr 2018 21:42:08 +0000 (18:42 -0300)
Arvados-DCO-1.1-Signed-off-by: Fernando Monserrat <fmonserrat@veritasgenetics.com>

15 files changed:
sdk/pam/MANIFEST.in
sdk/pam/arvados_version.py [new file with mode: 0644]
sdk/pam/setup.py
services/dockercleaner/MANIFEST.in
services/dockercleaner/arvados_version.py
services/dockercleaner/setup.py
services/fuse/MANIFEST.in
services/fuse/arvados_version.py
services/fuse/setup.py
services/nodemanager/MANIFEST.in
services/nodemanager/arvados_version.py
services/nodemanager/setup.py
tools/crunchstat-summary/MANIFEST.in
tools/crunchstat-summary/arvados_version.py
tools/crunchstat-summary/setup.py

index 553d1a528c2b048edeed97790010fa2475d9abb7..48892fa72860d8c09a77a4bb9801427baa07392d 100644 (file)
@@ -7,3 +7,4 @@ include README.rst
 include examples/shellinabox
 include lib/libpam_arvados.py
 include pam-configs/arvados
+include arvados_version.py
\ No newline at end of file
diff --git a/sdk/pam/arvados_version.py b/sdk/pam/arvados_version.py
new file mode 100644 (file)
index 0000000..a24d53d
--- /dev/null
@@ -0,0 +1,40 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+import subprocess
+import time
+import os
+import re
+
+def git_latest_tag():
+    gitinfo = subprocess.check_output(
+        ['git', 'describe', '--abbrev=0']).strip()
+    return str(gitinfo.decode('utf-8'))
+
+def git_timestamp_tag():
+    gitinfo = subprocess.check_output(
+        ['git', 'log', '--first-parent', '--max-count=1',
+         '--format=format:%ct', '.']).strip()
+    return str(time.strftime('.%Y%m%d%H%M%S', time.gmtime(int(gitinfo))))
+
+def save_version(setup_dir, 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(setup_dir, module):
+  with open(os.path.join(setup_dir, module, "_version.py"), 'r') as fp:
+      return re.match("__version__ = '(.*)'$", fp.read()).groups()[0]
+
+def get_version(setup_dir, module):
+    env_version = os.environ.get("ARVADOS_BUILDING_VERSION")
+
+    if env_version:
+        save_version(setup_dir, module, env_version)
+    else:
+        try:
+            save_version(setup_dir, module, git_latest_tag() + git_timestamp_tag())
+        except subprocess.CalledProcessError:
+            pass
+
+    return read_version(setup_dir, module)
index 35ed08238d0663fde630036a888dbc0599cf0da8..23f23310ca025d2b665480b707fe1c5cd03def2e 100755 (executable)
@@ -3,10 +3,11 @@
 #
 # SPDX-License-Identifier: Apache-2.0
 
+from __future__ import absolute_import
 import glob
 import os
 import sys
-import setuptools.command.egg_info as egg_info_cmd
+import re
 import subprocess
 
 from setuptools import setup, find_packages
@@ -14,15 +15,13 @@ 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:
-    version = "0.1"
-    try:
-        import gittaggers
-        tagger = gittaggers.EggInfoFromGit
-    except ImportError:
-        pass
+import arvados_version
+version = arvados_version.get_version(SETUP_DIR, "arvados")
+
+short_tests_only = False
+if '--short-tests-only' in sys.argv:
+    short_tests_only = True
+    sys.argv.remove('--short-tests-only')
 
 setup(name='arvados-pam',
       version=version,
@@ -56,6 +55,5 @@ setup(name='arvados-pam',
       ],
       test_suite='tests',
       tests_require=['pbr<1.7.0', 'mock>=1.0', 'python-pam'],
-      zip_safe=False,
-      cmdclass={'egg_info': tagger},
+      zip_safe=False
       )
index 2a14fab6599c707000df23dd2842bd2aa15152db..5d510b41a338d4dae67eb004c25bee74762c8e08 100644 (file)
@@ -4,3 +4,4 @@
 
 include agpl-3.0.txt
 include arvados-docker-cleaner.service
+include arvados_version.py
\ No newline at end of file
index db46417ea6d711dd7e7fe3e872c67de92f844469..a24d53dad6a629f9d08692bb19dd62e144655a7b 100644 (file)
@@ -4,17 +4,37 @@
 
 import subprocess
 import time
+import os
+import re
 
-class VersionInfoFromGit():
-    """Return arvados version from git
-    """
-    def git_latest_tag(self):
-        gitinfo = subprocess.check_output(
-            ['git', 'describe', '--abbrev=0']).strip()
-        return str(gitinfo.decode('utf-8'))
-
-    def git_timestamp_tag(self):
-        gitinfo = subprocess.check_output(
-            ['git', 'log', '--first-parent', '--max-count=1',
-             '--format=format:%ct', '.']).strip()
-        return str(time.strftime('.%Y%m%d%H%M%S', time.gmtime(int(gitinfo))))
+def git_latest_tag():
+    gitinfo = subprocess.check_output(
+        ['git', 'describe', '--abbrev=0']).strip()
+    return str(gitinfo.decode('utf-8'))
+
+def git_timestamp_tag():
+    gitinfo = subprocess.check_output(
+        ['git', 'log', '--first-parent', '--max-count=1',
+         '--format=format:%ct', '.']).strip()
+    return str(time.strftime('.%Y%m%d%H%M%S', time.gmtime(int(gitinfo))))
+
+def save_version(setup_dir, 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(setup_dir, module):
+  with open(os.path.join(setup_dir, module, "_version.py"), 'r') as fp:
+      return re.match("__version__ = '(.*)'$", fp.read()).groups()[0]
+
+def get_version(setup_dir, module):
+    env_version = os.environ.get("ARVADOS_BUILDING_VERSION")
+
+    if env_version:
+        save_version(setup_dir, module, env_version)
+    else:
+        try:
+            save_version(setup_dir, module, git_latest_tag() + git_timestamp_tag())
+        except subprocess.CalledProcessError:
+            pass
+
+    return read_version(setup_dir, module)
index b287bd00d27514af6604aafb80062602d40a9161..ebc88b7e36bc39d273fe7faf115fa521058a9c6c 100644 (file)
@@ -3,21 +3,23 @@
 #
 # SPDX-License-Identifier: AGPL-3.0
 
+from __future__ import absolute_import
 import os
 import sys
-import setuptools.command.egg_info as egg_info_cmd
+import re
 
 from setuptools import setup, find_packages
 
-tagger = egg_info_cmd.egg_info
-version = os.environ.get("ARVADOS_BUILDING_VERSION")
-if not version:
-    try:
-        import arvados_version
-        vtag = arvados_version.VersionInfoFromGit()
-        version = vtag.git_latest_tag() + vtag.git_timestamp_tag()
-    except ImportError:
-        pass
+SETUP_DIR = os.path.dirname(__file__) or '.'
+README = os.path.join(SETUP_DIR, 'README.rst')
+
+import arvados_version
+version = arvados_version.get_version(SETUP_DIR, "arvados")
+
+short_tests_only = False
+if '--short-tests-only' in sys.argv:
+    short_tests_only = True
+    sys.argv.remove('--short-tests-only')
 
 setup(name="arvados-docker-cleaner",
       version=version,
@@ -43,6 +45,5 @@ setup(name="arvados-docker-cleaner",
           'mock',
       ],
       test_suite='tests',
-      zip_safe=False,
-      cmdclass={'egg_info': tagger},
+      zip_safe=False
 )
index 5692a6886b63a7a1daa53e9097d6deb0fd2c329c..7322a0ab52f613469c4345a89eed533a444a5107 100644 (file)
@@ -4,3 +4,4 @@
 
 include agpl-3.0.txt
 include README.rst
+include arvados_version.py
\ No newline at end of file
index db46417ea6d711dd7e7fe3e872c67de92f844469..a24d53dad6a629f9d08692bb19dd62e144655a7b 100644 (file)
@@ -4,17 +4,37 @@
 
 import subprocess
 import time
+import os
+import re
 
-class VersionInfoFromGit():
-    """Return arvados version from git
-    """
-    def git_latest_tag(self):
-        gitinfo = subprocess.check_output(
-            ['git', 'describe', '--abbrev=0']).strip()
-        return str(gitinfo.decode('utf-8'))
-
-    def git_timestamp_tag(self):
-        gitinfo = subprocess.check_output(
-            ['git', 'log', '--first-parent', '--max-count=1',
-             '--format=format:%ct', '.']).strip()
-        return str(time.strftime('.%Y%m%d%H%M%S', time.gmtime(int(gitinfo))))
+def git_latest_tag():
+    gitinfo = subprocess.check_output(
+        ['git', 'describe', '--abbrev=0']).strip()
+    return str(gitinfo.decode('utf-8'))
+
+def git_timestamp_tag():
+    gitinfo = subprocess.check_output(
+        ['git', 'log', '--first-parent', '--max-count=1',
+         '--format=format:%ct', '.']).strip()
+    return str(time.strftime('.%Y%m%d%H%M%S', time.gmtime(int(gitinfo))))
+
+def save_version(setup_dir, 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(setup_dir, module):
+  with open(os.path.join(setup_dir, module, "_version.py"), 'r') as fp:
+      return re.match("__version__ = '(.*)'$", fp.read()).groups()[0]
+
+def get_version(setup_dir, module):
+    env_version = os.environ.get("ARVADOS_BUILDING_VERSION")
+
+    if env_version:
+        save_version(setup_dir, module, env_version)
+    else:
+        try:
+            save_version(setup_dir, module, git_latest_tag() + git_timestamp_tag())
+        except subprocess.CalledProcessError:
+            pass
+
+    return read_version(setup_dir, module)
index 8bc11315fa20834e3d1222044fd24155cb76fdcb..d3c5033fccc3e076958d86bbc9c956ad8f4a6552 100644 (file)
@@ -3,25 +3,19 @@
 #
 # SPDX-License-Identifier: AGPL-3.0
 
+from __future__ import absolute_import
 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:
-    try:
-        import arvados_version
-        vtag = arvados_version.VersionInfoFromGit()
-        version = vtag.git_latest_tag() + vtag.git_timestamp_tag()
-    except ImportError:
-        pass
-        
+import arvados_version
+version = arvados_version.get_version(SETUP_DIR, "arvados")
+
 short_tests_only = False
 if '--short-tests-only' in sys.argv:
     short_tests_only = True
@@ -52,6 +46,5 @@ setup(name='arvados_fuse',
         ],
       test_suite='tests',
       tests_require=['pbr<1.7.0', 'mock>=1.0', 'PyYAML'],
-      zip_safe=False,
-      cmdclass={'egg_info': tagger},
+      zip_safe=False
       )
index 5692a6886b63a7a1daa53e9097d6deb0fd2c329c..7322a0ab52f613469c4345a89eed533a444a5107 100644 (file)
@@ -4,3 +4,4 @@
 
 include agpl-3.0.txt
 include README.rst
+include arvados_version.py
\ No newline at end of file
index db46417ea6d711dd7e7fe3e872c67de92f844469..a24d53dad6a629f9d08692bb19dd62e144655a7b 100644 (file)
@@ -4,17 +4,37 @@
 
 import subprocess
 import time
+import os
+import re
 
-class VersionInfoFromGit():
-    """Return arvados version from git
-    """
-    def git_latest_tag(self):
-        gitinfo = subprocess.check_output(
-            ['git', 'describe', '--abbrev=0']).strip()
-        return str(gitinfo.decode('utf-8'))
-
-    def git_timestamp_tag(self):
-        gitinfo = subprocess.check_output(
-            ['git', 'log', '--first-parent', '--max-count=1',
-             '--format=format:%ct', '.']).strip()
-        return str(time.strftime('.%Y%m%d%H%M%S', time.gmtime(int(gitinfo))))
+def git_latest_tag():
+    gitinfo = subprocess.check_output(
+        ['git', 'describe', '--abbrev=0']).strip()
+    return str(gitinfo.decode('utf-8'))
+
+def git_timestamp_tag():
+    gitinfo = subprocess.check_output(
+        ['git', 'log', '--first-parent', '--max-count=1',
+         '--format=format:%ct', '.']).strip()
+    return str(time.strftime('.%Y%m%d%H%M%S', time.gmtime(int(gitinfo))))
+
+def save_version(setup_dir, 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(setup_dir, module):
+  with open(os.path.join(setup_dir, module, "_version.py"), 'r') as fp:
+      return re.match("__version__ = '(.*)'$", fp.read()).groups()[0]
+
+def get_version(setup_dir, module):
+    env_version = os.environ.get("ARVADOS_BUILDING_VERSION")
+
+    if env_version:
+        save_version(setup_dir, module, env_version)
+    else:
+        try:
+            save_version(setup_dir, module, git_latest_tag() + git_timestamp_tag())
+        except subprocess.CalledProcessError:
+            pass
+
+    return read_version(setup_dir, module)
index 9ae1135b88cd1d2b2eb4f6260a694eb5728972f1..b472c8833bf6cce13b38b57d4b141a71ba88fabb 100644 (file)
@@ -3,25 +3,23 @@
 #
 # SPDX-License-Identifier: AGPL-3.0
 
+from __future__ import absolute_import
 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 "."
+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:
-    try:
-        import arvados_version
-        vtag = arvados_version.VersionInfoFromGit()
-        version = vtag.git_latest_tag() + vtag.git_timestamp_tag()
-    except ImportError:
-        pass
+import arvados_version
+version = arvados_version.get_version(SETUP_DIR, "arvados")
 
+short_tests_only = False
+if '--short-tests-only' in sys.argv:
+    short_tests_only = True
+    sys.argv.remove('--short-tests-only')
 
 setup(name='arvados-node-manager',
       version=version,
@@ -51,6 +49,5 @@ setup(name='arvados-node-manager',
           'mock>=1.0',
           'apache-libcloud>=2.3',
       ],
-      zip_safe=False,
-      cmdclass={'egg_info': tagger},
+      zip_safe=False
       )
index d1c3037ca2b0adbe73f0019072fd7041659ebbe0..764a4735efcca3959fdaacb0fb3fd326e7625312 100644 (file)
@@ -5,3 +5,4 @@
 include agpl-3.0.txt
 include crunchstat_summary/dygraphs.js
 include crunchstat_summary/synchronizer.js
+include arvados_version.py
\ No newline at end of file
index db46417ea6d711dd7e7fe3e872c67de92f844469..a24d53dad6a629f9d08692bb19dd62e144655a7b 100644 (file)
@@ -4,17 +4,37 @@
 
 import subprocess
 import time
+import os
+import re
 
-class VersionInfoFromGit():
-    """Return arvados version from git
-    """
-    def git_latest_tag(self):
-        gitinfo = subprocess.check_output(
-            ['git', 'describe', '--abbrev=0']).strip()
-        return str(gitinfo.decode('utf-8'))
-
-    def git_timestamp_tag(self):
-        gitinfo = subprocess.check_output(
-            ['git', 'log', '--first-parent', '--max-count=1',
-             '--format=format:%ct', '.']).strip()
-        return str(time.strftime('.%Y%m%d%H%M%S', time.gmtime(int(gitinfo))))
+def git_latest_tag():
+    gitinfo = subprocess.check_output(
+        ['git', 'describe', '--abbrev=0']).strip()
+    return str(gitinfo.decode('utf-8'))
+
+def git_timestamp_tag():
+    gitinfo = subprocess.check_output(
+        ['git', 'log', '--first-parent', '--max-count=1',
+         '--format=format:%ct', '.']).strip()
+    return str(time.strftime('.%Y%m%d%H%M%S', time.gmtime(int(gitinfo))))
+
+def save_version(setup_dir, 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(setup_dir, module):
+  with open(os.path.join(setup_dir, module, "_version.py"), 'r') as fp:
+      return re.match("__version__ = '(.*)'$", fp.read()).groups()[0]
+
+def get_version(setup_dir, module):
+    env_version = os.environ.get("ARVADOS_BUILDING_VERSION")
+
+    if env_version:
+        save_version(setup_dir, module, env_version)
+    else:
+        try:
+            save_version(setup_dir, module, git_latest_tag() + git_timestamp_tag())
+        except subprocess.CalledProcessError:
+            pass
+
+    return read_version(setup_dir, module)
index 0965faea83ad4757a54630d51c6889a692d99290..6cd22b1b9f45e1fa4ca1a51ae5ae24af259944dd 100755 (executable)
@@ -3,24 +3,23 @@
 #
 # SPDX-License-Identifier: AGPL-3.0
 
+from __future__ import absolute_import
 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:
-    try:
-        import arvados_version
-        vtag = arvados_version.VersionInfoFromGit()
-        version = vtag.git_latest_tag() + vtag.git_timestamp_tag()
-    except ImportError:
-        pass
+import arvados_version
+version = arvados_version.get_version(SETUP_DIR, "arvados")
 
+short_tests_only = False
+if '--short-tests-only' in sys.argv:
+    short_tests_only = True
+    sys.argv.remove('--short-tests-only')
 
 setup(name='crunchstat_summary',
       version=version,
@@ -43,6 +42,5 @@ setup(name='crunchstat_summary',
       ],
       test_suite='tests',
       tests_require=['pbr<1.7.0', 'mock>=1.0'],
-      zip_safe=False,
-      cmdclass={'egg_info': tagger},
+      zip_safe=False
       )