[arvados] updated: 2.7.0-6208-g33b86b169d
git repository hosting
git at public.arvados.org
Sun Mar 17 18:09:31 UTC 2024
Summary of changes:
sdk/cwl/arvados_version.py | 15 ++++++++++++++-
sdk/python/arvados_version.py | 15 ++++++++++++++-
services/dockercleaner/arvados_version.py | 15 ++++++++++++++-
services/fuse/arvados_version.py | 15 ++++++++++++++-
tools/crunchstat-summary/arvados_version.py | 15 ++++++++++++++-
tools/user-activity/arvados_version.py | 15 ++++++++++++++-
6 files changed, 84 insertions(+), 6 deletions(-)
via 33b86b169d9427418e350f099a72c81707c13ede (commit)
from e512d73d1fc576f468510fcc67b185f01a70c0c2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 33b86b169d9427418e350f099a72c81707c13ede
Author: Brett Smith <brett.smith at curii.com>
Date: Sun Mar 17 13:49:50 2024 -0400
21601: Accommodate dev dependencies in outside-Git packages
We do this with Docker sometimes: we build sdists at one point, and then
pip install the sdists later. Dependencies need to allow for a range of
development versions for that to work.
This relaxes the dependency a little like <= did earlier in setup.py,
but with a much higher floor on what versions are acceptable. This
should prevent situations in the future where pip installs an older
release version to satisfy a dependency for a development package.
Arvados-DCO-1.1-Signed-off-by: Brett Smith <brett.smith at curii.com>
diff --git a/sdk/cwl/arvados_version.py b/sdk/cwl/arvados_version.py
index 1ec7c5487a..5804986a49 100644
--- a/sdk/cwl/arvados_version.py
+++ b/sdk/cwl/arvados_version.py
@@ -16,6 +16,8 @@ import runpy
import subprocess
import sys
+import packaging.version
+
from pathlib import Path
# These maps explain the relationships between different Python modules in
@@ -127,7 +129,18 @@ def iter_dependencies(version=None):
if version is None:
version = get_version()
if ENV_VERSION or (REPO_PATH is None):
- dep_fmt = f'{{}}=={version}'.format
+ parsed_ver = packaging.version.parse(version)
+ if parsed_ver.is_devrelease:
+ # A packaged development release should be installed with other
+ # development packages built from the same source, but those
+ # dependencies may have earlier "dev" versions (read: less recent
+ # Git commit timestamps). This compatible version dependency
+ # expresses that as closely as possible. Allowing versions
+ # compatible with .dev0 allows any development release.
+ ver_dep = f'~={parsed_ver.base_version}.dev0'
+ else:
+ ver_dep = f'=={version}'
+ dep_fmt = f'{{}}{ver_dep}'.format
else:
def dep_fmt(pkg):
pkg_path = REPO_PATH / PACKAGE_SRCPATH_MAP[pkg]
diff --git a/sdk/python/arvados_version.py b/sdk/python/arvados_version.py
index 1ec7c5487a..5804986a49 100644
--- a/sdk/python/arvados_version.py
+++ b/sdk/python/arvados_version.py
@@ -16,6 +16,8 @@ import runpy
import subprocess
import sys
+import packaging.version
+
from pathlib import Path
# These maps explain the relationships between different Python modules in
@@ -127,7 +129,18 @@ def iter_dependencies(version=None):
if version is None:
version = get_version()
if ENV_VERSION or (REPO_PATH is None):
- dep_fmt = f'{{}}=={version}'.format
+ parsed_ver = packaging.version.parse(version)
+ if parsed_ver.is_devrelease:
+ # A packaged development release should be installed with other
+ # development packages built from the same source, but those
+ # dependencies may have earlier "dev" versions (read: less recent
+ # Git commit timestamps). This compatible version dependency
+ # expresses that as closely as possible. Allowing versions
+ # compatible with .dev0 allows any development release.
+ ver_dep = f'~={parsed_ver.base_version}.dev0'
+ else:
+ ver_dep = f'=={version}'
+ dep_fmt = f'{{}}{ver_dep}'.format
else:
def dep_fmt(pkg):
pkg_path = REPO_PATH / PACKAGE_SRCPATH_MAP[pkg]
diff --git a/services/dockercleaner/arvados_version.py b/services/dockercleaner/arvados_version.py
index 1ec7c5487a..5804986a49 100644
--- a/services/dockercleaner/arvados_version.py
+++ b/services/dockercleaner/arvados_version.py
@@ -16,6 +16,8 @@ import runpy
import subprocess
import sys
+import packaging.version
+
from pathlib import Path
# These maps explain the relationships between different Python modules in
@@ -127,7 +129,18 @@ def iter_dependencies(version=None):
if version is None:
version = get_version()
if ENV_VERSION or (REPO_PATH is None):
- dep_fmt = f'{{}}=={version}'.format
+ parsed_ver = packaging.version.parse(version)
+ if parsed_ver.is_devrelease:
+ # A packaged development release should be installed with other
+ # development packages built from the same source, but those
+ # dependencies may have earlier "dev" versions (read: less recent
+ # Git commit timestamps). This compatible version dependency
+ # expresses that as closely as possible. Allowing versions
+ # compatible with .dev0 allows any development release.
+ ver_dep = f'~={parsed_ver.base_version}.dev0'
+ else:
+ ver_dep = f'=={version}'
+ dep_fmt = f'{{}}{ver_dep}'.format
else:
def dep_fmt(pkg):
pkg_path = REPO_PATH / PACKAGE_SRCPATH_MAP[pkg]
diff --git a/services/fuse/arvados_version.py b/services/fuse/arvados_version.py
index 1ec7c5487a..5804986a49 100644
--- a/services/fuse/arvados_version.py
+++ b/services/fuse/arvados_version.py
@@ -16,6 +16,8 @@ import runpy
import subprocess
import sys
+import packaging.version
+
from pathlib import Path
# These maps explain the relationships between different Python modules in
@@ -127,7 +129,18 @@ def iter_dependencies(version=None):
if version is None:
version = get_version()
if ENV_VERSION or (REPO_PATH is None):
- dep_fmt = f'{{}}=={version}'.format
+ parsed_ver = packaging.version.parse(version)
+ if parsed_ver.is_devrelease:
+ # A packaged development release should be installed with other
+ # development packages built from the same source, but those
+ # dependencies may have earlier "dev" versions (read: less recent
+ # Git commit timestamps). This compatible version dependency
+ # expresses that as closely as possible. Allowing versions
+ # compatible with .dev0 allows any development release.
+ ver_dep = f'~={parsed_ver.base_version}.dev0'
+ else:
+ ver_dep = f'=={version}'
+ dep_fmt = f'{{}}{ver_dep}'.format
else:
def dep_fmt(pkg):
pkg_path = REPO_PATH / PACKAGE_SRCPATH_MAP[pkg]
diff --git a/tools/crunchstat-summary/arvados_version.py b/tools/crunchstat-summary/arvados_version.py
index 1ec7c5487a..5804986a49 100644
--- a/tools/crunchstat-summary/arvados_version.py
+++ b/tools/crunchstat-summary/arvados_version.py
@@ -16,6 +16,8 @@ import runpy
import subprocess
import sys
+import packaging.version
+
from pathlib import Path
# These maps explain the relationships between different Python modules in
@@ -127,7 +129,18 @@ def iter_dependencies(version=None):
if version is None:
version = get_version()
if ENV_VERSION or (REPO_PATH is None):
- dep_fmt = f'{{}}=={version}'.format
+ parsed_ver = packaging.version.parse(version)
+ if parsed_ver.is_devrelease:
+ # A packaged development release should be installed with other
+ # development packages built from the same source, but those
+ # dependencies may have earlier "dev" versions (read: less recent
+ # Git commit timestamps). This compatible version dependency
+ # expresses that as closely as possible. Allowing versions
+ # compatible with .dev0 allows any development release.
+ ver_dep = f'~={parsed_ver.base_version}.dev0'
+ else:
+ ver_dep = f'=={version}'
+ dep_fmt = f'{{}}{ver_dep}'.format
else:
def dep_fmt(pkg):
pkg_path = REPO_PATH / PACKAGE_SRCPATH_MAP[pkg]
diff --git a/tools/user-activity/arvados_version.py b/tools/user-activity/arvados_version.py
index 1ec7c5487a..5804986a49 100644
--- a/tools/user-activity/arvados_version.py
+++ b/tools/user-activity/arvados_version.py
@@ -16,6 +16,8 @@ import runpy
import subprocess
import sys
+import packaging.version
+
from pathlib import Path
# These maps explain the relationships between different Python modules in
@@ -127,7 +129,18 @@ def iter_dependencies(version=None):
if version is None:
version = get_version()
if ENV_VERSION or (REPO_PATH is None):
- dep_fmt = f'{{}}=={version}'.format
+ parsed_ver = packaging.version.parse(version)
+ if parsed_ver.is_devrelease:
+ # A packaged development release should be installed with other
+ # development packages built from the same source, but those
+ # dependencies may have earlier "dev" versions (read: less recent
+ # Git commit timestamps). This compatible version dependency
+ # expresses that as closely as possible. Allowing versions
+ # compatible with .dev0 allows any development release.
+ ver_dep = f'~={parsed_ver.base_version}.dev0'
+ else:
+ ver_dep = f'=={version}'
+ dep_fmt = f'{{}}{ver_dep}'.format
else:
def dep_fmt(pkg):
pkg_path = REPO_PATH / PACKAGE_SRCPATH_MAP[pkg]
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list