From 592e4a4b22bcf995b4a6a7a3a6d0c05b0d3c0de2 Mon Sep 17 00:00:00 2001 From: Chris Stephens Date: Sat, 24 Oct 2026 09:08:31 +0000 Subject: [PATCH 1/3] Require grpcio>=1.84.1 to stop trusting the compromised eMudhra CAs grpcio releases before 1.84.1 bundle a roots.pem that still trusts emSign ECC Root CA - G3, the parent of the eMudhra intermediate CAs whose private keys were compromised. databricks-connect opens its Spark Connect channel with grpc.ssl_channel_credentials() and no explicit roots, so it uses that bundled file rather than the OS store and would accept a forged certificate for the workspace host. Fixed upstream in grpc/grpc#43699, released in grpcio 1.84.1. Add a SECURITY_FLOOR rule to envgen: a package whose runtime version is below its floor is pinned to >=FLOOR, --- .github/scripts/envgen.py | 27 +++++++++++++++++ .github/scripts/test_envgen.py | 30 +++++++++++++++++-- .../14.3.x-cpu-ml-scala2.12/constraints.txt | 2 +- .../14.3.x-cpu-ml-scala2.12/pyproject.toml | 2 +- .../14.3.x-gpu-ml-scala2.12/constraints.txt | 2 +- .../14.3.x-gpu-ml-scala2.12/pyproject.toml | 2 +- python/dbr/14.3.x-scala2.12/constraints.txt | 2 +- python/dbr/14.3.x-scala2.12/pyproject.toml | 2 +- .../15.4.x-cpu-ml-scala2.12/constraints.txt | 2 +- .../15.4.x-cpu-ml-scala2.12/pyproject.toml | 2 +- .../15.4.x-gpu-ml-scala2.12/constraints.txt | 2 +- .../15.4.x-gpu-ml-scala2.12/pyproject.toml | 2 +- python/dbr/15.4.x-scala2.12/constraints.txt | 2 +- python/dbr/15.4.x-scala2.12/pyproject.toml | 2 +- python/dbr/16.1.x-scala2.12/constraints.txt | 2 +- python/dbr/16.1.x-scala2.12/pyproject.toml | 2 +- .../16.4.x-cpu-ml-scala2.12/constraints.txt | 2 +- .../16.4.x-cpu-ml-scala2.12/pyproject.toml | 2 +- .../16.4.x-cpu-ml-scala2.13/constraints.txt | 2 +- .../16.4.x-cpu-ml-scala2.13/pyproject.toml | 2 +- .../16.4.x-gpu-ml-scala2.12/constraints.txt | 2 +- .../16.4.x-gpu-ml-scala2.12/pyproject.toml | 2 +- .../16.4.x-gpu-ml-scala2.13/constraints.txt | 2 +- .../16.4.x-gpu-ml-scala2.13/pyproject.toml | 2 +- python/dbr/16.4.x-scala2.12/constraints.txt | 2 +- python/dbr/16.4.x-scala2.12/pyproject.toml | 2 +- python/dbr/16.4.x-scala2.13/constraints.txt | 2 +- python/dbr/16.4.x-scala2.13/pyproject.toml | 2 +- .../17.3.x-cpu-ml-scala2.13/constraints.txt | 2 +- .../17.3.x-cpu-ml-scala2.13/pyproject.toml | 2 +- .../17.3.x-gpu-ml-scala2.13/constraints.txt | 2 +- .../17.3.x-gpu-ml-scala2.13/pyproject.toml | 2 +- python/dbr/17.3.x-scala2.13/constraints.txt | 2 +- python/dbr/17.3.x-scala2.13/pyproject.toml | 2 +- .../18.2.x-cpu-ml-scala2.13/constraints.txt | 2 +- .../18.2.x-cpu-ml-scala2.13/pyproject.toml | 2 +- .../18.2.x-gpu-ml-scala2.13/constraints.txt | 2 +- .../18.2.x-gpu-ml-scala2.13/pyproject.toml | 2 +- python/dbr/18.2.x-scala2.13/constraints.txt | 2 +- python/dbr/18.2.x-scala2.13/pyproject.toml | 2 +- .../dbr/18.x-cpu-ml-scala2.13/constraints.txt | 2 +- .../dbr/18.x-cpu-ml-scala2.13/pyproject.toml | 2 +- .../dbr/18.x-gpu-ml-scala2.13/constraints.txt | 2 +- .../dbr/18.x-gpu-ml-scala2.13/pyproject.toml | 2 +- python/dbr/18.x-scala2.13/constraints.txt | 2 +- python/dbr/18.x-scala2.13/pyproject.toml | 2 +- .../dbr/19.x-cpu-ml-scala2.13/constraints.txt | 2 +- .../dbr/19.x-cpu-ml-scala2.13/pyproject.toml | 2 +- .../dbr/19.x-gpu-ml-scala2.13/constraints.txt | 2 +- .../dbr/19.x-gpu-ml-scala2.13/pyproject.toml | 2 +- python/dbr/19.x-scala2.13/constraints.txt | 2 +- python/dbr/19.x-scala2.13/pyproject.toml | 2 +- .../serverless/serverless-v1/constraints.txt | 2 +- .../serverless/serverless-v1/pyproject.toml | 2 +- .../serverless/serverless-v2/constraints.txt | 2 +- .../serverless/serverless-v2/pyproject.toml | 2 +- .../serverless/serverless-v3/constraints.txt | 2 +- .../serverless/serverless-v3/pyproject.toml | 2 +- .../serverless/serverless-v4/constraints.txt | 2 +- .../serverless/serverless-v4/pyproject.toml | 2 +- .../serverless-v5-ml/constraints.txt | 2 +- .../serverless-v5-ml/pyproject.toml | 2 +- .../serverless/serverless-v5/constraints.txt | 2 +- .../serverless/serverless-v5/pyproject.toml | 2 +- .../serverless-v6-ml/constraints.txt | 2 +- .../serverless-v6-ml/pyproject.toml | 2 +- .../serverless/serverless-v6/constraints.txt | 2 +- .../serverless/serverless-v6/pyproject.toml | 2 +- 68 files changed, 121 insertions(+), 68 deletions(-) diff --git a/.github/scripts/envgen.py b/.github/scripts/envgen.py index 36b2ad3..9052a1c 100644 --- a/.github/scripts/envgen.py +++ b/.github/scripts/envgen.py @@ -12,6 +12,9 @@ because databricks-connect (installed from the dev group) governs their versions and can require outside the runtime's patch line. See ``req`` (CONNECT_GOVERNED) / issues #16,#19,#20. + * Security floors - a package whose runtime version is below a known-vulnerable + cut-off is pinned to ``>=FLOOR,=FLOOR,= 3.10; no Python 3.9 environment pins grpcio today. +SECURITY_FLOOR = {"grpcio": "1.84.1"} + + +def _release(version): + """Leading numeric release of a version, as a tuple of ints ('1.84.1rc1' -> (1, 84, 1)).""" + return tuple(int(p) for p in re.match(r"\d+(?:\.\d+)*", version).group(0).split(".")) + def norm(name): # Strip the '*' footnote marker the release-notes tables append to some package @@ -125,8 +146,14 @@ def req(name, version): wheel). Widening to ``MAJOR.MINOR`` (``~=0.67`` → ``>=0.67,<1``) keeps the runtime's version as the floor while letting databricks-connect's metadata and wheel availability pick the exact version in-range. See issues #16, #19, #20. + + A package in ``SECURITY_FLOOR`` whose version is below its floor is rendered as + ``>=FLOOR, ``grpcio>=1.84.1,<2``). """ version = version.split("+", 1)[0] + floor = SECURITY_FLOOR.get(name) + if floor and _release(version) < _release(floor): + return f"{name}>={floor},<{_release(floor)[0] + 1}" if name in CONNECT_GOVERNED: version = ".".join(version.split(".")[:2]) return f"{name}~={version}" diff --git a/.github/scripts/test_envgen.py b/.github/scripts/test_envgen.py index 3e35ce7..b3ea602 100644 --- a/.github/scripts/test_envgen.py +++ b/.github/scripts/test_envgen.py @@ -95,9 +95,35 @@ def test_grpc_family_widened_to_major_minor(self): # grpcio / grpcio-status move with databricks-connect (installed from the dev # group), which can require a version outside the runtime's patch line — so # widen them to MAJOR.MINOR like databricks-sdk, keeping the runtime as floor. - self.assertEqual(req("grpcio", "1.48.2"), "grpcio~=1.48") + # (grpcio below its security floor is covered by SecurityFloorTest.) + self.assertEqual(req("grpcio", "1.85.0"), "grpcio~=1.85") self.assertEqual(req("grpcio-status", "1.48.1"), "grpcio-status~=1.48") - self.assertEqual(req("grpcio", "1.67.0"), "grpcio~=1.67") + self.assertEqual(req("grpcio-status", "1.67.0"), "grpcio-status~=1.67") + + +class SecurityFloorTest(unittest.TestCase): + def test_grpcio_below_floor_raised(self): + # grpcio < 1.84.1 trusts the compromised eMudhra CAs, so every runtime still + # listing an older grpcio gets the floor, keeping the <2 bound ~= would give. + for v in ("1.48.2", "1.60.0", "1.67.0", "1.76.0", "1.84.0", "1.84.0+db1"): + self.assertEqual(req("grpcio", v), "grpcio>=1.84.1,<2", v) + + def test_grpcio_at_or_above_floor_unchanged(self): + self.assertEqual(req("grpcio", "1.84.1"), "grpcio~=1.84") + self.assertEqual(req("grpcio", "1.85.0"), "grpcio~=1.85") + + def test_grpcio_status_not_floored(self): + # grpcio-status is not vulnerable, and raising it would pull a newer protobuf + # than the runtime pins; grpcio-status 1.x accepts a newer grpcio. + self.assertEqual(req("grpcio-status", "1.60.0"), "grpcio-status~=1.60") + + def test_floor_reaches_both_artifacts(self): + pkgs = {"grpcio": "1.67.0", "grpcio-status": "1.67.0"} + for out in (build_pyproject(pkgs, "serverless-v4", "3.12.3"), + build_constraints(pkgs, "serverless-v4")): + self.assertIn("grpcio>=1.84.1,<2", out) + self.assertIn("grpcio-status~=1.67", out) + self.assertNotIn("grpcio~=", out) class BuildArtifactsTest(unittest.TestCase): diff --git a/python/dbr/14.3.x-cpu-ml-scala2.12/constraints.txt b/python/dbr/14.3.x-cpu-ml-scala2.12/constraints.txt index e9e55a2..e45cb68 100644 --- a/python/dbr/14.3.x-cpu-ml-scala2.12/constraints.txt +++ b/python/dbr/14.3.x-cpu-ml-scala2.12/constraints.txt @@ -87,7 +87,7 @@ google-pasta~=0.2.0 google-resumable-media~=2.7.0 googleapis-common-protos~=1.62.0 greenlet~=2.0.1 -grpcio~=1.48 +grpcio>=1.84.1,<2 grpcio-status~=1.48 gunicorn~=20.1.0 gviz-api~=1.10.0 diff --git a/python/dbr/14.3.x-cpu-ml-scala2.12/pyproject.toml b/python/dbr/14.3.x-cpu-ml-scala2.12/pyproject.toml index 9954fe7..2b4cf7f 100644 --- a/python/dbr/14.3.x-cpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/14.3.x-cpu-ml-scala2.12/pyproject.toml @@ -99,7 +99,7 @@ constraint-dependencies = [ "google-resumable-media~=2.7.0", "googleapis-common-protos~=1.62.0", "greenlet~=2.0.1", - "grpcio~=1.48", + "grpcio>=1.84.1,<2", "grpcio-status~=1.48", "gunicorn~=20.1.0", "gviz-api~=1.10.0", diff --git a/python/dbr/14.3.x-gpu-ml-scala2.12/constraints.txt b/python/dbr/14.3.x-gpu-ml-scala2.12/constraints.txt index 3b643d7..83a996a 100644 --- a/python/dbr/14.3.x-gpu-ml-scala2.12/constraints.txt +++ b/python/dbr/14.3.x-gpu-ml-scala2.12/constraints.txt @@ -89,7 +89,7 @@ google-pasta~=0.2.0 google-resumable-media~=2.7.0 googleapis-common-protos~=1.62.0 greenlet~=2.0.1 -grpcio~=1.48 +grpcio>=1.84.1,<2 grpcio-status~=1.48 gunicorn~=20.1.0 gviz-api~=1.10.0 diff --git a/python/dbr/14.3.x-gpu-ml-scala2.12/pyproject.toml b/python/dbr/14.3.x-gpu-ml-scala2.12/pyproject.toml index 69e4094..207e260 100644 --- a/python/dbr/14.3.x-gpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/14.3.x-gpu-ml-scala2.12/pyproject.toml @@ -101,7 +101,7 @@ constraint-dependencies = [ "google-resumable-media~=2.7.0", "googleapis-common-protos~=1.62.0", "greenlet~=2.0.1", - "grpcio~=1.48", + "grpcio>=1.84.1,<2", "grpcio-status~=1.48", "gunicorn~=20.1.0", "gviz-api~=1.10.0", diff --git a/python/dbr/14.3.x-scala2.12/constraints.txt b/python/dbr/14.3.x-scala2.12/constraints.txt index 3879e9a..fd43a3d 100644 --- a/python/dbr/14.3.x-scala2.12/constraints.txt +++ b/python/dbr/14.3.x-scala2.12/constraints.txt @@ -35,7 +35,7 @@ fastjsonschema~=2.19.1 filelock~=3.13.1 fonttools~=4.25.0 googleapis-common-protos~=1.62.0 -grpcio~=1.48 +grpcio>=1.84.1,<2 grpcio-status~=1.48 httplib2~=0.20.2 idna~=3.4 diff --git a/python/dbr/14.3.x-scala2.12/pyproject.toml b/python/dbr/14.3.x-scala2.12/pyproject.toml index 1939869..1085332 100644 --- a/python/dbr/14.3.x-scala2.12/pyproject.toml +++ b/python/dbr/14.3.x-scala2.12/pyproject.toml @@ -47,7 +47,7 @@ constraint-dependencies = [ "filelock~=3.13.1", "fonttools~=4.25.0", "googleapis-common-protos~=1.62.0", - "grpcio~=1.48", + "grpcio>=1.84.1,<2", "grpcio-status~=1.48", "httplib2~=0.20.2", "idna~=3.4", diff --git a/python/dbr/15.4.x-cpu-ml-scala2.12/constraints.txt b/python/dbr/15.4.x-cpu-ml-scala2.12/constraints.txt index bdf660c..a55a4b7 100644 --- a/python/dbr/15.4.x-cpu-ml-scala2.12/constraints.txt +++ b/python/dbr/15.4.x-cpu-ml-scala2.12/constraints.txt @@ -92,7 +92,7 @@ google-pasta~=0.2.0 google-resumable-media~=2.7.1 googleapis-common-protos~=1.63.0 greenlet~=2.0.1 -grpcio~=1.60 +grpcio>=1.84.1,<2 grpcio-status~=1.60 gunicorn~=20.1.0 gviz-api~=1.10.0 diff --git a/python/dbr/15.4.x-cpu-ml-scala2.12/pyproject.toml b/python/dbr/15.4.x-cpu-ml-scala2.12/pyproject.toml index c939181..99042a7 100644 --- a/python/dbr/15.4.x-cpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/15.4.x-cpu-ml-scala2.12/pyproject.toml @@ -104,7 +104,7 @@ constraint-dependencies = [ "google-resumable-media~=2.7.1", "googleapis-common-protos~=1.63.0", "greenlet~=2.0.1", - "grpcio~=1.60", + "grpcio>=1.84.1,<2", "grpcio-status~=1.60", "gunicorn~=20.1.0", "gviz-api~=1.10.0", diff --git a/python/dbr/15.4.x-gpu-ml-scala2.12/constraints.txt b/python/dbr/15.4.x-gpu-ml-scala2.12/constraints.txt index 9f4d36f..ff24b88 100644 --- a/python/dbr/15.4.x-gpu-ml-scala2.12/constraints.txt +++ b/python/dbr/15.4.x-gpu-ml-scala2.12/constraints.txt @@ -93,7 +93,7 @@ google-pasta~=0.2.0 google-resumable-media~=2.7.1 googleapis-common-protos~=1.63.0 greenlet~=2.0.1 -grpcio~=1.60 +grpcio>=1.84.1,<2 grpcio-status~=1.60 gunicorn~=20.1.0 gviz-api~=1.10.0 diff --git a/python/dbr/15.4.x-gpu-ml-scala2.12/pyproject.toml b/python/dbr/15.4.x-gpu-ml-scala2.12/pyproject.toml index 78c924e..1b6cb83 100644 --- a/python/dbr/15.4.x-gpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/15.4.x-gpu-ml-scala2.12/pyproject.toml @@ -105,7 +105,7 @@ constraint-dependencies = [ "google-resumable-media~=2.7.1", "googleapis-common-protos~=1.63.0", "greenlet~=2.0.1", - "grpcio~=1.60", + "grpcio>=1.84.1,<2", "grpcio-status~=1.60", "gunicorn~=20.1.0", "gviz-api~=1.10.0", diff --git a/python/dbr/15.4.x-scala2.12/constraints.txt b/python/dbr/15.4.x-scala2.12/constraints.txt index fdf7a5b..7a41049 100644 --- a/python/dbr/15.4.x-scala2.12/constraints.txt +++ b/python/dbr/15.4.x-scala2.12/constraints.txt @@ -40,7 +40,7 @@ google-cloud-storage~=2.17.0 google-crc32c~=1.5.0 google-resumable-media~=2.7.1 googleapis-common-protos~=1.63.2 -grpcio~=1.60 +grpcio>=1.84.1,<2 grpcio-status~=1.60 httplib2~=0.20.2 idna~=3.4 diff --git a/python/dbr/15.4.x-scala2.12/pyproject.toml b/python/dbr/15.4.x-scala2.12/pyproject.toml index a4072ed..ad22a2d 100644 --- a/python/dbr/15.4.x-scala2.12/pyproject.toml +++ b/python/dbr/15.4.x-scala2.12/pyproject.toml @@ -52,7 +52,7 @@ constraint-dependencies = [ "google-crc32c~=1.5.0", "google-resumable-media~=2.7.1", "googleapis-common-protos~=1.63.2", - "grpcio~=1.60", + "grpcio>=1.84.1,<2", "grpcio-status~=1.60", "httplib2~=0.20.2", "idna~=3.4", diff --git a/python/dbr/16.1.x-scala2.12/constraints.txt b/python/dbr/16.1.x-scala2.12/constraints.txt index 5d83a07..34af60b 100644 --- a/python/dbr/16.1.x-scala2.12/constraints.txt +++ b/python/dbr/16.1.x-scala2.12/constraints.txt @@ -42,7 +42,7 @@ google-cloud-storage~=2.18.2 google-crc32c~=1.6.0 google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 -grpcio~=1.60 +grpcio>=1.84.1,<2 grpcio-status~=1.60 httplib2~=0.20.4 idna~=3.7 diff --git a/python/dbr/16.1.x-scala2.12/pyproject.toml b/python/dbr/16.1.x-scala2.12/pyproject.toml index fb95634..6d58d07 100644 --- a/python/dbr/16.1.x-scala2.12/pyproject.toml +++ b/python/dbr/16.1.x-scala2.12/pyproject.toml @@ -54,7 +54,7 @@ constraint-dependencies = [ "google-crc32c~=1.6.0", "google-resumable-media~=2.7.2", "googleapis-common-protos~=1.65.0", - "grpcio~=1.60", + "grpcio>=1.84.1,<2", "grpcio-status~=1.60", "httplib2~=0.20.4", "idna~=3.7", diff --git a/python/dbr/16.4.x-cpu-ml-scala2.12/constraints.txt b/python/dbr/16.4.x-cpu-ml-scala2.12/constraints.txt index bf69d34..69112aa 100644 --- a/python/dbr/16.4.x-cpu-ml-scala2.12/constraints.txt +++ b/python/dbr/16.4.x-cpu-ml-scala2.12/constraints.txt @@ -104,7 +104,7 @@ googleapis-common-protos~=1.70.0 gql~=3.5.2 graphql-core~=3.2.4 greenlet~=3.0.1 -grpcio~=1.60 +grpcio>=1.84.1,<2 grpcio-status~=1.60 gunicorn~=20.1.0 gviz-api~=1.10.0 diff --git a/python/dbr/16.4.x-cpu-ml-scala2.12/pyproject.toml b/python/dbr/16.4.x-cpu-ml-scala2.12/pyproject.toml index b29a4b9..e26789d 100644 --- a/python/dbr/16.4.x-cpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/16.4.x-cpu-ml-scala2.12/pyproject.toml @@ -116,7 +116,7 @@ constraint-dependencies = [ "gql~=3.5.2", "graphql-core~=3.2.4", "greenlet~=3.0.1", - "grpcio~=1.60", + "grpcio>=1.84.1,<2", "grpcio-status~=1.60", "gunicorn~=20.1.0", "gviz-api~=1.10.0", diff --git a/python/dbr/16.4.x-cpu-ml-scala2.13/constraints.txt b/python/dbr/16.4.x-cpu-ml-scala2.13/constraints.txt index d9d5e66..caa2383 100644 --- a/python/dbr/16.4.x-cpu-ml-scala2.13/constraints.txt +++ b/python/dbr/16.4.x-cpu-ml-scala2.13/constraints.txt @@ -104,7 +104,7 @@ googleapis-common-protos~=1.70.0 gql~=3.5.2 graphql-core~=3.2.4 greenlet~=3.0.1 -grpcio~=1.60 +grpcio>=1.84.1,<2 grpcio-status~=1.60 gunicorn~=20.1.0 gviz-api~=1.10.0 diff --git a/python/dbr/16.4.x-cpu-ml-scala2.13/pyproject.toml b/python/dbr/16.4.x-cpu-ml-scala2.13/pyproject.toml index b944fd3..5db3231 100644 --- a/python/dbr/16.4.x-cpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/16.4.x-cpu-ml-scala2.13/pyproject.toml @@ -116,7 +116,7 @@ constraint-dependencies = [ "gql~=3.5.2", "graphql-core~=3.2.4", "greenlet~=3.0.1", - "grpcio~=1.60", + "grpcio>=1.84.1,<2", "grpcio-status~=1.60", "gunicorn~=20.1.0", "gviz-api~=1.10.0", diff --git a/python/dbr/16.4.x-gpu-ml-scala2.12/constraints.txt b/python/dbr/16.4.x-gpu-ml-scala2.12/constraints.txt index 40bd4de..4efa2a0 100644 --- a/python/dbr/16.4.x-gpu-ml-scala2.12/constraints.txt +++ b/python/dbr/16.4.x-gpu-ml-scala2.12/constraints.txt @@ -103,7 +103,7 @@ googleapis-common-protos~=1.70.0 gql~=3.5.2 graphql-core~=3.2.4 greenlet~=3.0.1 -grpcio~=1.60 +grpcio>=1.84.1,<2 grpcio-status~=1.60 gunicorn~=20.1.0 gviz-api~=1.10.0 diff --git a/python/dbr/16.4.x-gpu-ml-scala2.12/pyproject.toml b/python/dbr/16.4.x-gpu-ml-scala2.12/pyproject.toml index 4c90207..5f809f1 100644 --- a/python/dbr/16.4.x-gpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/16.4.x-gpu-ml-scala2.12/pyproject.toml @@ -115,7 +115,7 @@ constraint-dependencies = [ "gql~=3.5.2", "graphql-core~=3.2.4", "greenlet~=3.0.1", - "grpcio~=1.60", + "grpcio>=1.84.1,<2", "grpcio-status~=1.60", "gunicorn~=20.1.0", "gviz-api~=1.10.0", diff --git a/python/dbr/16.4.x-gpu-ml-scala2.13/constraints.txt b/python/dbr/16.4.x-gpu-ml-scala2.13/constraints.txt index 276dfbc..642c7ed 100644 --- a/python/dbr/16.4.x-gpu-ml-scala2.13/constraints.txt +++ b/python/dbr/16.4.x-gpu-ml-scala2.13/constraints.txt @@ -103,7 +103,7 @@ googleapis-common-protos~=1.70.0 gql~=3.5.2 graphql-core~=3.2.4 greenlet~=3.0.1 -grpcio~=1.60 +grpcio>=1.84.1,<2 grpcio-status~=1.60 gunicorn~=20.1.0 gviz-api~=1.10.0 diff --git a/python/dbr/16.4.x-gpu-ml-scala2.13/pyproject.toml b/python/dbr/16.4.x-gpu-ml-scala2.13/pyproject.toml index 6879351..03a256e 100644 --- a/python/dbr/16.4.x-gpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/16.4.x-gpu-ml-scala2.13/pyproject.toml @@ -115,7 +115,7 @@ constraint-dependencies = [ "gql~=3.5.2", "graphql-core~=3.2.4", "greenlet~=3.0.1", - "grpcio~=1.60", + "grpcio>=1.84.1,<2", "grpcio-status~=1.60", "gunicorn~=20.1.0", "gviz-api~=1.10.0", diff --git a/python/dbr/16.4.x-scala2.12/constraints.txt b/python/dbr/16.4.x-scala2.12/constraints.txt index b4e5c64..11e6c03 100644 --- a/python/dbr/16.4.x-scala2.12/constraints.txt +++ b/python/dbr/16.4.x-scala2.12/constraints.txt @@ -41,7 +41,7 @@ google-cloud-storage~=2.18.2 google-crc32c~=1.6.0 google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 -grpcio~=1.60 +grpcio>=1.84.1,<2 grpcio-status~=1.60 httplib2~=0.20.4 idna~=3.7 diff --git a/python/dbr/16.4.x-scala2.12/pyproject.toml b/python/dbr/16.4.x-scala2.12/pyproject.toml index 0e43070..18c01b2 100644 --- a/python/dbr/16.4.x-scala2.12/pyproject.toml +++ b/python/dbr/16.4.x-scala2.12/pyproject.toml @@ -53,7 +53,7 @@ constraint-dependencies = [ "google-crc32c~=1.6.0", "google-resumable-media~=2.7.2", "googleapis-common-protos~=1.65.0", - "grpcio~=1.60", + "grpcio>=1.84.1,<2", "grpcio-status~=1.60", "httplib2~=0.20.4", "idna~=3.7", diff --git a/python/dbr/16.4.x-scala2.13/constraints.txt b/python/dbr/16.4.x-scala2.13/constraints.txt index bff26ed..f8555e5 100644 --- a/python/dbr/16.4.x-scala2.13/constraints.txt +++ b/python/dbr/16.4.x-scala2.13/constraints.txt @@ -41,7 +41,7 @@ google-cloud-storage~=2.18.2 google-crc32c~=1.6.0 google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 -grpcio~=1.60 +grpcio>=1.84.1,<2 grpcio-status~=1.60 httplib2~=0.20.4 idna~=3.7 diff --git a/python/dbr/16.4.x-scala2.13/pyproject.toml b/python/dbr/16.4.x-scala2.13/pyproject.toml index f29e058..74fe536 100644 --- a/python/dbr/16.4.x-scala2.13/pyproject.toml +++ b/python/dbr/16.4.x-scala2.13/pyproject.toml @@ -53,7 +53,7 @@ constraint-dependencies = [ "google-crc32c~=1.6.0", "google-resumable-media~=2.7.2", "googleapis-common-protos~=1.65.0", - "grpcio~=1.60", + "grpcio>=1.84.1,<2", "grpcio-status~=1.60", "httplib2~=0.20.4", "idna~=3.7", diff --git a/python/dbr/17.3.x-cpu-ml-scala2.13/constraints.txt b/python/dbr/17.3.x-cpu-ml-scala2.13/constraints.txt index f847684..abfb3ed 100644 --- a/python/dbr/17.3.x-cpu-ml-scala2.13/constraints.txt +++ b/python/dbr/17.3.x-cpu-ml-scala2.13/constraints.txt @@ -106,7 +106,7 @@ googleapis-common-protos~=1.65.0 gql~=4.0.0 graphql-core~=3.2.4 greenlet~=3.1.1 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 gunicorn~=20.1.0 gymnasium~=0.28.1 diff --git a/python/dbr/17.3.x-cpu-ml-scala2.13/pyproject.toml b/python/dbr/17.3.x-cpu-ml-scala2.13/pyproject.toml index cd8f4e9..db093b9 100644 --- a/python/dbr/17.3.x-cpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/17.3.x-cpu-ml-scala2.13/pyproject.toml @@ -118,7 +118,7 @@ constraint-dependencies = [ "gql~=4.0.0", "graphql-core~=3.2.4", "greenlet~=3.1.1", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "gunicorn~=20.1.0", "gymnasium~=0.28.1", diff --git a/python/dbr/17.3.x-gpu-ml-scala2.13/constraints.txt b/python/dbr/17.3.x-gpu-ml-scala2.13/constraints.txt index 56485c2..d233393 100644 --- a/python/dbr/17.3.x-gpu-ml-scala2.13/constraints.txt +++ b/python/dbr/17.3.x-gpu-ml-scala2.13/constraints.txt @@ -105,7 +105,7 @@ googleapis-common-protos~=1.65.0 gql~=4.0.0 graphql-core~=3.2.4 greenlet~=3.1.1 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 gunicorn~=20.1.0 gymnasium~=0.28.1 diff --git a/python/dbr/17.3.x-gpu-ml-scala2.13/pyproject.toml b/python/dbr/17.3.x-gpu-ml-scala2.13/pyproject.toml index b095186..5716ba7 100644 --- a/python/dbr/17.3.x-gpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/17.3.x-gpu-ml-scala2.13/pyproject.toml @@ -117,7 +117,7 @@ constraint-dependencies = [ "gql~=4.0.0", "graphql-core~=3.2.4", "greenlet~=3.1.1", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "gunicorn~=20.1.0", "gymnasium~=0.28.1", diff --git a/python/dbr/17.3.x-scala2.13/constraints.txt b/python/dbr/17.3.x-scala2.13/constraints.txt index 3e7c526..9e03a5e 100644 --- a/python/dbr/17.3.x-scala2.13/constraints.txt +++ b/python/dbr/17.3.x-scala2.13/constraints.txt @@ -59,7 +59,7 @@ google-cloud-storage~=3.1.0 google-crc32c~=1.7.1 google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 h11~=0.14.0 httpcore~=1.0.2 diff --git a/python/dbr/17.3.x-scala2.13/pyproject.toml b/python/dbr/17.3.x-scala2.13/pyproject.toml index 0142d8a..1254124 100644 --- a/python/dbr/17.3.x-scala2.13/pyproject.toml +++ b/python/dbr/17.3.x-scala2.13/pyproject.toml @@ -71,7 +71,7 @@ constraint-dependencies = [ "google-crc32c~=1.7.1", "google-resumable-media~=2.7.2", "googleapis-common-protos~=1.65.0", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "h11~=0.14.0", "httpcore~=1.0.2", diff --git a/python/dbr/18.2.x-cpu-ml-scala2.13/constraints.txt b/python/dbr/18.2.x-cpu-ml-scala2.13/constraints.txt index be69701..4fc6b3f 100644 --- a/python/dbr/18.2.x-cpu-ml-scala2.13/constraints.txt +++ b/python/dbr/18.2.x-cpu-ml-scala2.13/constraints.txt @@ -103,7 +103,7 @@ google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 graphql-core~=3.2.4 greenlet~=3.1.1 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 gymnasium~=0.28.1 h11~=0.16.0 diff --git a/python/dbr/18.2.x-cpu-ml-scala2.13/pyproject.toml b/python/dbr/18.2.x-cpu-ml-scala2.13/pyproject.toml index c0fab73..c86741a 100644 --- a/python/dbr/18.2.x-cpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/18.2.x-cpu-ml-scala2.13/pyproject.toml @@ -115,7 +115,7 @@ constraint-dependencies = [ "googleapis-common-protos~=1.65.0", "graphql-core~=3.2.4", "greenlet~=3.1.1", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "gymnasium~=0.28.1", "h11~=0.16.0", diff --git a/python/dbr/18.2.x-gpu-ml-scala2.13/constraints.txt b/python/dbr/18.2.x-gpu-ml-scala2.13/constraints.txt index 69bf97a..85ede1c 100644 --- a/python/dbr/18.2.x-gpu-ml-scala2.13/constraints.txt +++ b/python/dbr/18.2.x-gpu-ml-scala2.13/constraints.txt @@ -102,7 +102,7 @@ google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 graphql-core~=3.2.4 greenlet~=3.1.1 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 gymnasium~=0.28.1 h11~=0.16.0 diff --git a/python/dbr/18.2.x-gpu-ml-scala2.13/pyproject.toml b/python/dbr/18.2.x-gpu-ml-scala2.13/pyproject.toml index 4b2b6d1..0093db3 100644 --- a/python/dbr/18.2.x-gpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/18.2.x-gpu-ml-scala2.13/pyproject.toml @@ -114,7 +114,7 @@ constraint-dependencies = [ "googleapis-common-protos~=1.65.0", "graphql-core~=3.2.4", "greenlet~=3.1.1", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "gymnasium~=0.28.1", "h11~=0.16.0", diff --git a/python/dbr/18.2.x-scala2.13/constraints.txt b/python/dbr/18.2.x-scala2.13/constraints.txt index 3dbd60c..55d7643 100644 --- a/python/dbr/18.2.x-scala2.13/constraints.txt +++ b/python/dbr/18.2.x-scala2.13/constraints.txt @@ -68,7 +68,7 @@ google-cloud-storage~=3.7.0 google-crc32c~=1.8.0 google-resumable-media~=2.8.0 googleapis-common-protos~=1.65.0 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 h11~=0.16.0 hf-xet~=1.2.0 diff --git a/python/dbr/18.2.x-scala2.13/pyproject.toml b/python/dbr/18.2.x-scala2.13/pyproject.toml index 56f57c3..c71343d 100644 --- a/python/dbr/18.2.x-scala2.13/pyproject.toml +++ b/python/dbr/18.2.x-scala2.13/pyproject.toml @@ -80,7 +80,7 @@ constraint-dependencies = [ "google-crc32c~=1.8.0", "google-resumable-media~=2.8.0", "googleapis-common-protos~=1.65.0", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "h11~=0.16.0", "hf-xet~=1.2.0", diff --git a/python/dbr/18.x-cpu-ml-scala2.13/constraints.txt b/python/dbr/18.x-cpu-ml-scala2.13/constraints.txt index 76fe84c..e1760d8 100644 --- a/python/dbr/18.x-cpu-ml-scala2.13/constraints.txt +++ b/python/dbr/18.x-cpu-ml-scala2.13/constraints.txt @@ -103,7 +103,7 @@ google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 graphql-core~=3.2.4 greenlet~=3.1.1 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 gymnasium~=0.28.1 h11~=0.16.0 diff --git a/python/dbr/18.x-cpu-ml-scala2.13/pyproject.toml b/python/dbr/18.x-cpu-ml-scala2.13/pyproject.toml index 6445344..e1d9dac 100644 --- a/python/dbr/18.x-cpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/18.x-cpu-ml-scala2.13/pyproject.toml @@ -115,7 +115,7 @@ constraint-dependencies = [ "googleapis-common-protos~=1.65.0", "graphql-core~=3.2.4", "greenlet~=3.1.1", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "gymnasium~=0.28.1", "h11~=0.16.0", diff --git a/python/dbr/18.x-gpu-ml-scala2.13/constraints.txt b/python/dbr/18.x-gpu-ml-scala2.13/constraints.txt index a31b41e..d0a7eaa 100644 --- a/python/dbr/18.x-gpu-ml-scala2.13/constraints.txt +++ b/python/dbr/18.x-gpu-ml-scala2.13/constraints.txt @@ -102,7 +102,7 @@ google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 graphql-core~=3.2.4 greenlet~=3.1.1 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 gymnasium~=0.28.1 h11~=0.16.0 diff --git a/python/dbr/18.x-gpu-ml-scala2.13/pyproject.toml b/python/dbr/18.x-gpu-ml-scala2.13/pyproject.toml index f4ad387..b40fb8d 100644 --- a/python/dbr/18.x-gpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/18.x-gpu-ml-scala2.13/pyproject.toml @@ -114,7 +114,7 @@ constraint-dependencies = [ "googleapis-common-protos~=1.65.0", "graphql-core~=3.2.4", "greenlet~=3.1.1", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "gymnasium~=0.28.1", "h11~=0.16.0", diff --git a/python/dbr/18.x-scala2.13/constraints.txt b/python/dbr/18.x-scala2.13/constraints.txt index 3b85c0e..2701420 100644 --- a/python/dbr/18.x-scala2.13/constraints.txt +++ b/python/dbr/18.x-scala2.13/constraints.txt @@ -68,7 +68,7 @@ google-cloud-storage~=3.7.0 google-crc32c~=1.8.0 google-resumable-media~=2.8.0 googleapis-common-protos~=1.65.0 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 h11~=0.16.0 hf-xet~=1.2.0 diff --git a/python/dbr/18.x-scala2.13/pyproject.toml b/python/dbr/18.x-scala2.13/pyproject.toml index de7e20e..a8facf4 100644 --- a/python/dbr/18.x-scala2.13/pyproject.toml +++ b/python/dbr/18.x-scala2.13/pyproject.toml @@ -80,7 +80,7 @@ constraint-dependencies = [ "google-crc32c~=1.8.0", "google-resumable-media~=2.8.0", "googleapis-common-protos~=1.65.0", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "h11~=0.16.0", "hf-xet~=1.2.0", diff --git a/python/dbr/19.x-cpu-ml-scala2.13/constraints.txt b/python/dbr/19.x-cpu-ml-scala2.13/constraints.txt index 2c53df1..25552f7 100644 --- a/python/dbr/19.x-cpu-ml-scala2.13/constraints.txt +++ b/python/dbr/19.x-cpu-ml-scala2.13/constraints.txt @@ -78,7 +78,7 @@ google-resumable-media~=2.9.0 googleapis-common-protos~=1.71.0 graphql-core~=3.2.4 greenlet~=3.2.4 -grpcio~=1.76 +grpcio>=1.84.1,<2 grpcio-status~=1.76 gymnasium~=0.28.1 h11~=0.16.0 diff --git a/python/dbr/19.x-cpu-ml-scala2.13/pyproject.toml b/python/dbr/19.x-cpu-ml-scala2.13/pyproject.toml index 1480a75..1a931f2 100644 --- a/python/dbr/19.x-cpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/19.x-cpu-ml-scala2.13/pyproject.toml @@ -90,7 +90,7 @@ constraint-dependencies = [ "googleapis-common-protos~=1.71.0", "graphql-core~=3.2.4", "greenlet~=3.2.4", - "grpcio~=1.76", + "grpcio>=1.84.1,<2", "grpcio-status~=1.76", "gymnasium~=0.28.1", "h11~=0.16.0", diff --git a/python/dbr/19.x-gpu-ml-scala2.13/constraints.txt b/python/dbr/19.x-gpu-ml-scala2.13/constraints.txt index 068afad..7776a39 100644 --- a/python/dbr/19.x-gpu-ml-scala2.13/constraints.txt +++ b/python/dbr/19.x-gpu-ml-scala2.13/constraints.txt @@ -77,7 +77,7 @@ google-resumable-media~=2.9.0 googleapis-common-protos~=1.71.0 graphql-core~=3.2.4 greenlet~=3.2.4 -grpcio~=1.76 +grpcio>=1.84.1,<2 grpcio-status~=1.76 gymnasium~=0.28.1 h11~=0.16.0 diff --git a/python/dbr/19.x-gpu-ml-scala2.13/pyproject.toml b/python/dbr/19.x-gpu-ml-scala2.13/pyproject.toml index 3da43a8..6f3e533 100644 --- a/python/dbr/19.x-gpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/19.x-gpu-ml-scala2.13/pyproject.toml @@ -89,7 +89,7 @@ constraint-dependencies = [ "googleapis-common-protos~=1.71.0", "graphql-core~=3.2.4", "greenlet~=3.2.4", - "grpcio~=1.76", + "grpcio>=1.84.1,<2", "grpcio-status~=1.76", "gymnasium~=0.28.1", "h11~=0.16.0", diff --git a/python/dbr/19.x-scala2.13/constraints.txt b/python/dbr/19.x-scala2.13/constraints.txt index bfcb1ba..e5fc073 100644 --- a/python/dbr/19.x-scala2.13/constraints.txt +++ b/python/dbr/19.x-scala2.13/constraints.txt @@ -48,7 +48,7 @@ google-cloud-storage~=3.10.1 google-crc32c~=1.8.0 google-resumable-media~=2.9.0 googleapis-common-protos~=1.71.0 -grpcio~=1.76 +grpcio>=1.84.1,<2 grpcio-status~=1.76 h11~=0.16.0 httplib2~=0.20.4 diff --git a/python/dbr/19.x-scala2.13/pyproject.toml b/python/dbr/19.x-scala2.13/pyproject.toml index f0e573a..dc59116 100644 --- a/python/dbr/19.x-scala2.13/pyproject.toml +++ b/python/dbr/19.x-scala2.13/pyproject.toml @@ -60,7 +60,7 @@ constraint-dependencies = [ "google-crc32c~=1.8.0", "google-resumable-media~=2.9.0", "googleapis-common-protos~=1.71.0", - "grpcio~=1.76", + "grpcio>=1.84.1,<2", "grpcio-status~=1.76", "h11~=0.16.0", "httplib2~=0.20.4", diff --git a/python/serverless/serverless-v1/constraints.txt b/python/serverless/serverless-v1/constraints.txt index a170fda..eac8ecc 100644 --- a/python/serverless/serverless-v1/constraints.txt +++ b/python/serverless/serverless-v1/constraints.txt @@ -38,7 +38,7 @@ filelock~=3.16.1 fonttools~=4.25.0 google-auth~=2.28.1 googleapis-common-protos~=1.62.0 -grpcio~=1.62 +grpcio>=1.84.1,<2 grpcio-status~=1.62 httplib2~=0.20.2 idna~=3.4 diff --git a/python/serverless/serverless-v1/pyproject.toml b/python/serverless/serverless-v1/pyproject.toml index f26c2d2..f55d90e 100644 --- a/python/serverless/serverless-v1/pyproject.toml +++ b/python/serverless/serverless-v1/pyproject.toml @@ -50,7 +50,7 @@ constraint-dependencies = [ "fonttools~=4.25.0", "google-auth~=2.28.1", "googleapis-common-protos~=1.62.0", - "grpcio~=1.62", + "grpcio>=1.84.1,<2", "grpcio-status~=1.62", "httplib2~=0.20.2", "idna~=3.4", diff --git a/python/serverless/serverless-v2/constraints.txt b/python/serverless/serverless-v2/constraints.txt index 6f50b76..dfabf8d 100644 --- a/python/serverless/serverless-v2/constraints.txt +++ b/python/serverless/serverless-v2/constraints.txt @@ -38,7 +38,7 @@ google-cloud-storage~=2.18.2 google-crc32c~=1.6.0 google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 -grpcio~=1.69 +grpcio>=1.84.1,<2 grpcio-status~=1.69 idna~=3.4 importlib-metadata~=6.0.0 diff --git a/python/serverless/serverless-v2/pyproject.toml b/python/serverless/serverless-v2/pyproject.toml index bd154dc..21dc31a 100644 --- a/python/serverless/serverless-v2/pyproject.toml +++ b/python/serverless/serverless-v2/pyproject.toml @@ -50,7 +50,7 @@ constraint-dependencies = [ "google-crc32c~=1.6.0", "google-resumable-media~=2.7.2", "googleapis-common-protos~=1.65.0", - "grpcio~=1.69", + "grpcio>=1.84.1,<2", "grpcio-status~=1.69", "idna~=3.4", "importlib-metadata~=6.0.0", diff --git a/python/serverless/serverless-v3/constraints.txt b/python/serverless/serverless-v3/constraints.txt index 6131635..11cb2e3 100644 --- a/python/serverless/serverless-v3/constraints.txt +++ b/python/serverless/serverless-v3/constraints.txt @@ -40,7 +40,7 @@ google-cloud-storage~=3.1.0 google-crc32c~=1.7.1 google-resumable-media~=2.7.2 googleapis-common-protos~=1.69.2 -grpcio~=1.71 +grpcio>=1.84.1,<2 grpcio-status~=1.71 h11~=0.14.0 idna~=3.7 diff --git a/python/serverless/serverless-v3/pyproject.toml b/python/serverless/serverless-v3/pyproject.toml index dde7b22..9342e5f 100644 --- a/python/serverless/serverless-v3/pyproject.toml +++ b/python/serverless/serverless-v3/pyproject.toml @@ -52,7 +52,7 @@ constraint-dependencies = [ "google-crc32c~=1.7.1", "google-resumable-media~=2.7.2", "googleapis-common-protos~=1.69.2", - "grpcio~=1.71", + "grpcio>=1.84.1,<2", "grpcio-status~=1.71", "h11~=0.14.0", "idna~=3.7", diff --git a/python/serverless/serverless-v4/constraints.txt b/python/serverless/serverless-v4/constraints.txt index e8c3741..fe79028 100644 --- a/python/serverless/serverless-v4/constraints.txt +++ b/python/serverless/serverless-v4/constraints.txt @@ -56,7 +56,7 @@ google-cloud-storage~=3.1.0 google-crc32c~=1.7.1 google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 h11~=0.14.0 httpcore~=1.0.2 diff --git a/python/serverless/serverless-v4/pyproject.toml b/python/serverless/serverless-v4/pyproject.toml index 1f3f040..61f8561 100644 --- a/python/serverless/serverless-v4/pyproject.toml +++ b/python/serverless/serverless-v4/pyproject.toml @@ -68,7 +68,7 @@ constraint-dependencies = [ "google-crc32c~=1.7.1", "google-resumable-media~=2.7.2", "googleapis-common-protos~=1.65.0", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "h11~=0.14.0", "httpcore~=1.0.2", diff --git a/python/serverless/serverless-v5-ml/constraints.txt b/python/serverless/serverless-v5-ml/constraints.txt index 51b01d7..7bceaa8 100644 --- a/python/serverless/serverless-v5-ml/constraints.txt +++ b/python/serverless/serverless-v5-ml/constraints.txt @@ -100,7 +100,7 @@ google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 graphql-core~=3.2.4 greenlet~=3.1.1 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 gymnasium~=0.28.1 h11~=0.16.0 diff --git a/python/serverless/serverless-v5-ml/pyproject.toml b/python/serverless/serverless-v5-ml/pyproject.toml index 9a1ef8c..ad6d2b9 100644 --- a/python/serverless/serverless-v5-ml/pyproject.toml +++ b/python/serverless/serverless-v5-ml/pyproject.toml @@ -112,7 +112,7 @@ constraint-dependencies = [ "googleapis-common-protos~=1.65.0", "graphql-core~=3.2.4", "greenlet~=3.1.1", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "gymnasium~=0.28.1", "h11~=0.16.0", diff --git a/python/serverless/serverless-v5/constraints.txt b/python/serverless/serverless-v5/constraints.txt index e4e6669..08fe1fa 100644 --- a/python/serverless/serverless-v5/constraints.txt +++ b/python/serverless/serverless-v5/constraints.txt @@ -66,7 +66,7 @@ google-cloud-storage~=3.7.0 google-crc32c~=1.8.0 google-resumable-media~=2.8.0 googleapis-common-protos~=1.65.0 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 h11~=0.16.0 hf-xet~=1.2.0 diff --git a/python/serverless/serverless-v5/pyproject.toml b/python/serverless/serverless-v5/pyproject.toml index 53f1496..efc8510 100644 --- a/python/serverless/serverless-v5/pyproject.toml +++ b/python/serverless/serverless-v5/pyproject.toml @@ -78,7 +78,7 @@ constraint-dependencies = [ "google-crc32c~=1.8.0", "google-resumable-media~=2.8.0", "googleapis-common-protos~=1.65.0", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "h11~=0.16.0", "hf-xet~=1.2.0", diff --git a/python/serverless/serverless-v6-ml/constraints.txt b/python/serverless/serverless-v6-ml/constraints.txt index 33ded10..dd029e6 100644 --- a/python/serverless/serverless-v6-ml/constraints.txt +++ b/python/serverless/serverless-v6-ml/constraints.txt @@ -87,7 +87,7 @@ google-resumable-media~=2.9.0 googleapis-common-protos~=1.71.0 graphql-core~=3.2.4 greenlet~=3.2.4 -grpcio~=1.76 +grpcio>=1.84.1,<2 grpcio-status~=1.76 gymnasium~=0.28.1 h11~=0.16.0 diff --git a/python/serverless/serverless-v6-ml/pyproject.toml b/python/serverless/serverless-v6-ml/pyproject.toml index add0127..bd941f5 100644 --- a/python/serverless/serverless-v6-ml/pyproject.toml +++ b/python/serverless/serverless-v6-ml/pyproject.toml @@ -99,7 +99,7 @@ constraint-dependencies = [ "googleapis-common-protos~=1.71.0", "graphql-core~=3.2.4", "greenlet~=3.2.4", - "grpcio~=1.76", + "grpcio>=1.84.1,<2", "grpcio-status~=1.76", "gymnasium~=0.28.1", "h11~=0.16.0", diff --git a/python/serverless/serverless-v6/constraints.txt b/python/serverless/serverless-v6/constraints.txt index b0dd55d..4901e77 100644 --- a/python/serverless/serverless-v6/constraints.txt +++ b/python/serverless/serverless-v6/constraints.txt @@ -58,7 +58,7 @@ google-cloud-storage~=3.10.1 google-crc32c~=1.8.0 google-resumable-media~=2.9.0 googleapis-common-protos~=1.71.0 -grpcio~=1.76 +grpcio>=1.84.1,<2 grpcio-status~=1.76 h11~=0.16.0 httpcore~=1.0.9 diff --git a/python/serverless/serverless-v6/pyproject.toml b/python/serverless/serverless-v6/pyproject.toml index e332e28..0936ad6 100644 --- a/python/serverless/serverless-v6/pyproject.toml +++ b/python/serverless/serverless-v6/pyproject.toml @@ -70,7 +70,7 @@ constraint-dependencies = [ "google-crc32c~=1.8.0", "google-resumable-media~=2.9.0", "googleapis-common-protos~=1.71.0", - "grpcio~=1.76", + "grpcio>=1.84.1,<2", "grpcio-status~=1.76", "h11~=0.16.0", "httpcore~=1.0.9", From e433eb44fc5d441a703befebaf4f5dc98a57453a Mon Sep 17 00:00:00 2001 From: Chris Stephens Date: Sat, 24 Oct 2026 09:12:31 +0000 Subject: [PATCH 2/3] Raise typing-extensions to >=4.12 so the grpcio floor resolves grpcio 1.84.1 requires typing-extensions~=4.12. DBR 13.3 - 16.4 and serverless-v1 - v3 list typing-extensions 4.3 - 4.11, so with only the grpcio floor uv cannot resolve those environments. Add FLOOR_DEPENDENCIES for floors a SECURITY_FLOOR release itself needs, regenerate, and apply the same edit to the DBR 13.3 artifacts that sync no longer regenerates. Co-authored-by: Isaac --- .github/scripts/envgen.py | 12 +++++++++--- .github/scripts/test_envgen.py | 7 +++++++ python/dbr/12.2.x-scala2.12/constraints.txt | 2 +- python/dbr/12.2.x-scala2.12/pyproject.toml | 2 +- python/dbr/13.3.x-cpu-ml-scala2.12/constraints.txt | 4 ++-- python/dbr/13.3.x-cpu-ml-scala2.12/pyproject.toml | 4 ++-- python/dbr/13.3.x-gpu-ml-scala2.12/constraints.txt | 4 ++-- python/dbr/13.3.x-gpu-ml-scala2.12/pyproject.toml | 4 ++-- python/dbr/13.3.x-scala2.12/constraints.txt | 4 ++-- python/dbr/13.3.x-scala2.12/pyproject.toml | 4 ++-- python/dbr/14.3.x-cpu-ml-scala2.12/constraints.txt | 2 +- python/dbr/14.3.x-cpu-ml-scala2.12/pyproject.toml | 2 +- python/dbr/14.3.x-gpu-ml-scala2.12/constraints.txt | 2 +- python/dbr/14.3.x-gpu-ml-scala2.12/pyproject.toml | 2 +- python/dbr/14.3.x-scala2.12/constraints.txt | 2 +- python/dbr/14.3.x-scala2.12/pyproject.toml | 2 +- python/dbr/15.4.x-cpu-ml-scala2.12/constraints.txt | 2 +- python/dbr/15.4.x-cpu-ml-scala2.12/pyproject.toml | 2 +- python/dbr/15.4.x-gpu-ml-scala2.12/constraints.txt | 2 +- python/dbr/15.4.x-gpu-ml-scala2.12/pyproject.toml | 2 +- python/dbr/15.4.x-scala2.12/constraints.txt | 2 +- python/dbr/15.4.x-scala2.12/pyproject.toml | 2 +- python/dbr/16.1.x-scala2.12/constraints.txt | 2 +- python/dbr/16.1.x-scala2.12/pyproject.toml | 2 +- python/dbr/16.4.x-cpu-ml-scala2.12/constraints.txt | 2 +- python/dbr/16.4.x-cpu-ml-scala2.12/pyproject.toml | 2 +- python/dbr/16.4.x-cpu-ml-scala2.13/constraints.txt | 2 +- python/dbr/16.4.x-cpu-ml-scala2.13/pyproject.toml | 2 +- python/dbr/16.4.x-gpu-ml-scala2.12/constraints.txt | 2 +- python/dbr/16.4.x-gpu-ml-scala2.12/pyproject.toml | 2 +- python/dbr/16.4.x-gpu-ml-scala2.13/constraints.txt | 2 +- python/dbr/16.4.x-gpu-ml-scala2.13/pyproject.toml | 2 +- python/dbr/16.4.x-scala2.12/constraints.txt | 2 +- python/dbr/16.4.x-scala2.12/pyproject.toml | 2 +- python/dbr/16.4.x-scala2.13/constraints.txt | 2 +- python/dbr/16.4.x-scala2.13/pyproject.toml | 2 +- python/dbr/18.0.x-cpu-ml-scala2.13/constraints.txt | 2 +- python/dbr/18.0.x-cpu-ml-scala2.13/pyproject.toml | 2 +- python/dbr/18.0.x-gpu-ml-scala2.13/constraints.txt | 2 +- python/dbr/18.0.x-gpu-ml-scala2.13/pyproject.toml | 2 +- python/dbr/18.0.x-scala2.13/constraints.txt | 2 +- python/dbr/18.0.x-scala2.13/pyproject.toml | 2 +- python/dbr/18.1.x-cpu-ml-scala2.13/constraints.txt | 2 +- python/dbr/18.1.x-cpu-ml-scala2.13/pyproject.toml | 2 +- python/dbr/18.1.x-gpu-ml-scala2.13/constraints.txt | 2 +- python/dbr/18.1.x-gpu-ml-scala2.13/pyproject.toml | 2 +- python/dbr/18.1.x-scala2.13/constraints.txt | 2 +- python/dbr/18.1.x-scala2.13/pyproject.toml | 2 +- python/serverless/serverless-v1/constraints.txt | 2 +- python/serverless/serverless-v1/pyproject.toml | 2 +- python/serverless/serverless-v2/constraints.txt | 2 +- python/serverless/serverless-v2/pyproject.toml | 2 +- python/serverless/serverless-v3/constraints.txt | 2 +- python/serverless/serverless-v3/pyproject.toml | 2 +- 54 files changed, 74 insertions(+), 61 deletions(-) diff --git a/.github/scripts/envgen.py b/.github/scripts/envgen.py index 9052a1c..fe434a2 100644 --- a/.github/scripts/envgen.py +++ b/.github/scripts/envgen.py @@ -111,6 +111,11 @@ # 1.84.1 requires Python >= 3.10; no Python 3.9 environment pins grpcio today. SECURITY_FLOOR = {"grpcio": "1.84.1"} +# Floors that a SECURITY_FLOOR release itself requires, so runtimes listing an older +# version stay resolvable. grpcio 1.84.1 requires typing-extensions~=4.12; DBR 13.3 - +# 16.4 and serverless-v1 - v3 list typing-extensions 4.3 - 4.11. +FLOOR_DEPENDENCIES = {"typing-extensions": "4.12"} + def _release(version): """Leading numeric release of a version, as a tuple of ints ('1.84.1rc1' -> (1, 84, 1)).""" @@ -147,11 +152,12 @@ def req(name, version): version as the floor while letting databricks-connect's metadata and wheel availability pick the exact version in-range. See issues #16, #19, #20. - A package in ``SECURITY_FLOOR`` whose version is below its floor is rendered as - ``>=FLOOR, ``grpcio>=1.84.1,<2``). + A package in ``SECURITY_FLOOR`` or ``FLOOR_DEPENDENCIES`` whose version is below + its floor is rendered as ``>=FLOOR, + ``grpcio>=1.84.1,<2``, ``typing-extensions 4.4.0`` -> ``typing-extensions>=4.12,<5``). """ version = version.split("+", 1)[0] - floor = SECURITY_FLOOR.get(name) + floor = SECURITY_FLOOR.get(name) or FLOOR_DEPENDENCIES.get(name) if floor and _release(version) < _release(floor): return f"{name}>={floor},<{_release(floor)[0] + 1}" if name in CONNECT_GOVERNED: diff --git a/.github/scripts/test_envgen.py b/.github/scripts/test_envgen.py index b3ea602..0799e6b 100644 --- a/.github/scripts/test_envgen.py +++ b/.github/scripts/test_envgen.py @@ -117,6 +117,13 @@ def test_grpcio_status_not_floored(self): # than the runtime pins; grpcio-status 1.x accepts a newer grpcio. self.assertEqual(req("grpcio-status", "1.60.0"), "grpcio-status~=1.60") + def test_typing_extensions_raised_for_grpcio(self): + # grpcio 1.84.1 requires typing-extensions~=4.12; older runtime pins would make + # the floored grpcio unresolvable. + self.assertEqual(req("typing-extensions", "4.4.0"), "typing-extensions>=4.12,<5") + self.assertEqual(req("typing-extensions", "4.11.0"), "typing-extensions>=4.12,<5") + self.assertEqual(req("typing-extensions", "4.12.2"), "typing-extensions~=4.12.2") + def test_floor_reaches_both_artifacts(self): pkgs = {"grpcio": "1.67.0", "grpcio-status": "1.67.0"} for out in (build_pyproject(pkgs, "serverless-v4", "3.12.3"), diff --git a/python/dbr/12.2.x-scala2.12/constraints.txt b/python/dbr/12.2.x-scala2.12/constraints.txt index 6bd098e..df02c14 100644 --- a/python/dbr/12.2.x-scala2.12/constraints.txt +++ b/python/dbr/12.2.x-scala2.12/constraints.txt @@ -112,7 +112,7 @@ tokenize-rt~=4.2.1 tomli~=1.2.2 tornado~=6.1 traitlets~=5.1.1 -typing-extensions~=4.1.1 +typing-extensions>=4.12,<5 ujson~=5.1.0 urllib3~=1.26.9 virtualenv~=20.8.0 diff --git a/python/dbr/12.2.x-scala2.12/pyproject.toml b/python/dbr/12.2.x-scala2.12/pyproject.toml index 4e14f09..5cb7032 100644 --- a/python/dbr/12.2.x-scala2.12/pyproject.toml +++ b/python/dbr/12.2.x-scala2.12/pyproject.toml @@ -124,7 +124,7 @@ constraint-dependencies = [ "tomli~=1.2.2", "tornado~=6.1", "traitlets~=5.1.1", - "typing-extensions~=4.1.1", + "typing-extensions>=4.12,<5", "ujson~=5.1.0", "urllib3~=1.26.9", "virtualenv~=20.8.0", diff --git a/python/dbr/13.3.x-cpu-ml-scala2.12/constraints.txt b/python/dbr/13.3.x-cpu-ml-scala2.12/constraints.txt index 16fff7f..f5b3876 100644 --- a/python/dbr/13.3.x-cpu-ml-scala2.12/constraints.txt +++ b/python/dbr/13.3.x-cpu-ml-scala2.12/constraints.txt @@ -87,7 +87,7 @@ google-pasta~=0.2.0 google-resumable-media~=2.5.0 googleapis-common-protos~=1.56.4 greenlet~=1.1.1 -grpcio~=1.48 +grpcio>=1.84.1,<2 grpcio-status~=1.48 gunicorn~=20.1.0 gviz-api~=1.10.0 @@ -282,7 +282,7 @@ tqdm~=4.64.1 traitlets~=5.1.1 transformers~=4.30.2 typer~=0.7.0 -typing-extensions~=4.3.0 +typing-extensions>=4.12,<5 typing-inspect~=0.9.0 ujson~=5.4.0 urllib3~=1.26.11 diff --git a/python/dbr/13.3.x-cpu-ml-scala2.12/pyproject.toml b/python/dbr/13.3.x-cpu-ml-scala2.12/pyproject.toml index bbe0131..ce54c01 100644 --- a/python/dbr/13.3.x-cpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/13.3.x-cpu-ml-scala2.12/pyproject.toml @@ -99,7 +99,7 @@ constraint-dependencies = [ "google-resumable-media~=2.5.0", "googleapis-common-protos~=1.56.4", "greenlet~=1.1.1", - "grpcio~=1.48", + "grpcio>=1.84.1,<2", "grpcio-status~=1.48", "gunicorn~=20.1.0", "gviz-api~=1.10.0", @@ -294,7 +294,7 @@ constraint-dependencies = [ "traitlets~=5.1.1", "transformers~=4.30.2", "typer~=0.7.0", - "typing-extensions~=4.3.0", + "typing-extensions>=4.12,<5", "typing-inspect~=0.9.0", "ujson~=5.4.0", "urllib3~=1.26.11", diff --git a/python/dbr/13.3.x-gpu-ml-scala2.12/constraints.txt b/python/dbr/13.3.x-gpu-ml-scala2.12/constraints.txt index d081593..5531004 100644 --- a/python/dbr/13.3.x-gpu-ml-scala2.12/constraints.txt +++ b/python/dbr/13.3.x-gpu-ml-scala2.12/constraints.txt @@ -88,7 +88,7 @@ google-pasta~=0.2.0 google-resumable-media~=2.5.0 googleapis-common-protos~=1.56.4 greenlet~=1.1.1 -grpcio~=1.48 +grpcio>=1.84.1,<2 grpcio-status~=1.48 gunicorn~=20.1.0 gviz-api~=1.10.0 @@ -282,7 +282,7 @@ tqdm~=4.64.1 traitlets~=5.1.1 transformers~=4.30.2 typer~=0.7.0 -typing-extensions~=4.3.0 +typing-extensions>=4.12,<5 typing-inspect~=0.9.0 ujson~=5.4.0 urllib3~=1.26.11 diff --git a/python/dbr/13.3.x-gpu-ml-scala2.12/pyproject.toml b/python/dbr/13.3.x-gpu-ml-scala2.12/pyproject.toml index 44b6a38..e0feffc 100644 --- a/python/dbr/13.3.x-gpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/13.3.x-gpu-ml-scala2.12/pyproject.toml @@ -100,7 +100,7 @@ constraint-dependencies = [ "google-resumable-media~=2.5.0", "googleapis-common-protos~=1.56.4", "greenlet~=1.1.1", - "grpcio~=1.48", + "grpcio>=1.84.1,<2", "grpcio-status~=1.48", "gunicorn~=20.1.0", "gviz-api~=1.10.0", @@ -294,7 +294,7 @@ constraint-dependencies = [ "traitlets~=5.1.1", "transformers~=4.30.2", "typer~=0.7.0", - "typing-extensions~=4.3.0", + "typing-extensions>=4.12,<5", "typing-inspect~=0.9.0", "ujson~=5.4.0", "urllib3~=1.26.11", diff --git a/python/dbr/13.3.x-scala2.12/constraints.txt b/python/dbr/13.3.x-scala2.12/constraints.txt index 2cda07b..8f31701 100644 --- a/python/dbr/13.3.x-scala2.12/constraints.txt +++ b/python/dbr/13.3.x-scala2.12/constraints.txt @@ -33,7 +33,7 @@ fastjsonschema~=2.18.0 filelock~=3.12.2 fonttools~=4.25.0 googleapis-common-protos~=1.56.4 -grpcio~=1.48 +grpcio>=1.84.1,<2 grpcio-status~=1.48 httplib2~=0.20.2 idna~=3.3 @@ -128,7 +128,7 @@ tokenize-rt~=4.2.1 tomli~=2.0.1 tornado~=6.1 traitlets~=5.1.1 -typing-extensions~=4.3.0 +typing-extensions>=4.12,<5 ujson~=5.4.0 urllib3~=1.26.11 virtualenv~=20.16.3 diff --git a/python/dbr/13.3.x-scala2.12/pyproject.toml b/python/dbr/13.3.x-scala2.12/pyproject.toml index 4bb6d07..fb23773 100644 --- a/python/dbr/13.3.x-scala2.12/pyproject.toml +++ b/python/dbr/13.3.x-scala2.12/pyproject.toml @@ -45,7 +45,7 @@ constraint-dependencies = [ "filelock~=3.12.2", "fonttools~=4.25.0", "googleapis-common-protos~=1.56.4", - "grpcio~=1.48", + "grpcio>=1.84.1,<2", "grpcio-status~=1.48", "httplib2~=0.20.2", "idna~=3.3", @@ -140,7 +140,7 @@ constraint-dependencies = [ "tomli~=2.0.1", "tornado~=6.1", "traitlets~=5.1.1", - "typing-extensions~=4.3.0", + "typing-extensions>=4.12,<5", "ujson~=5.4.0", "urllib3~=1.26.11", "virtualenv~=20.16.3", diff --git a/python/dbr/14.3.x-cpu-ml-scala2.12/constraints.txt b/python/dbr/14.3.x-cpu-ml-scala2.12/constraints.txt index e45cb68..da01f77 100644 --- a/python/dbr/14.3.x-cpu-ml-scala2.12/constraints.txt +++ b/python/dbr/14.3.x-cpu-ml-scala2.12/constraints.txt @@ -285,7 +285,7 @@ tqdm~=4.64.1 traitlets~=5.7.1 transformers~=4.36.1 typer~=0.9.0 -typing-extensions~=4.4.0 +typing-extensions>=4.12,<5 typing-inspect~=0.9.0 ujson~=5.4.0 urllib3~=1.26.14 diff --git a/python/dbr/14.3.x-cpu-ml-scala2.12/pyproject.toml b/python/dbr/14.3.x-cpu-ml-scala2.12/pyproject.toml index 2b4cf7f..d96781a 100644 --- a/python/dbr/14.3.x-cpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/14.3.x-cpu-ml-scala2.12/pyproject.toml @@ -297,7 +297,7 @@ constraint-dependencies = [ "traitlets~=5.7.1", "transformers~=4.36.1", "typer~=0.9.0", - "typing-extensions~=4.4.0", + "typing-extensions>=4.12,<5", "typing-inspect~=0.9.0", "ujson~=5.4.0", "urllib3~=1.26.14", diff --git a/python/dbr/14.3.x-gpu-ml-scala2.12/constraints.txt b/python/dbr/14.3.x-gpu-ml-scala2.12/constraints.txt index 83a996a..4de0080 100644 --- a/python/dbr/14.3.x-gpu-ml-scala2.12/constraints.txt +++ b/python/dbr/14.3.x-gpu-ml-scala2.12/constraints.txt @@ -287,7 +287,7 @@ tqdm~=4.64.1 traitlets~=5.7.1 transformers~=4.36.1 typer~=0.9.0 -typing-extensions~=4.4.0 +typing-extensions>=4.12,<5 typing-inspect~=0.9.0 ujson~=5.4.0 urllib3~=1.26.14 diff --git a/python/dbr/14.3.x-gpu-ml-scala2.12/pyproject.toml b/python/dbr/14.3.x-gpu-ml-scala2.12/pyproject.toml index 207e260..0e818e0 100644 --- a/python/dbr/14.3.x-gpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/14.3.x-gpu-ml-scala2.12/pyproject.toml @@ -299,7 +299,7 @@ constraint-dependencies = [ "traitlets~=5.7.1", "transformers~=4.36.1", "typer~=0.9.0", - "typing-extensions~=4.4.0", + "typing-extensions>=4.12,<5", "typing-inspect~=0.9.0", "ujson~=5.4.0", "urllib3~=1.26.14", diff --git a/python/dbr/14.3.x-scala2.12/constraints.txt b/python/dbr/14.3.x-scala2.12/constraints.txt index fd43a3d..636203c 100644 --- a/python/dbr/14.3.x-scala2.12/constraints.txt +++ b/python/dbr/14.3.x-scala2.12/constraints.txt @@ -136,7 +136,7 @@ tokenize-rt~=4.2.1 tomli~=2.0.1 tornado~=6.1 traitlets~=5.7.1 -typing-extensions~=4.4.0 +typing-extensions>=4.12,<5 ujson~=5.4.0 urllib3~=1.26.14 virtualenv~=20.16.7 diff --git a/python/dbr/14.3.x-scala2.12/pyproject.toml b/python/dbr/14.3.x-scala2.12/pyproject.toml index 1085332..f3cb386 100644 --- a/python/dbr/14.3.x-scala2.12/pyproject.toml +++ b/python/dbr/14.3.x-scala2.12/pyproject.toml @@ -148,7 +148,7 @@ constraint-dependencies = [ "tomli~=2.0.1", "tornado~=6.1", "traitlets~=5.7.1", - "typing-extensions~=4.4.0", + "typing-extensions>=4.12,<5", "ujson~=5.4.0", "urllib3~=1.26.14", "virtualenv~=20.16.7", diff --git a/python/dbr/15.4.x-cpu-ml-scala2.12/constraints.txt b/python/dbr/15.4.x-cpu-ml-scala2.12/constraints.txt index a55a4b7..9857aba 100644 --- a/python/dbr/15.4.x-cpu-ml-scala2.12/constraints.txt +++ b/python/dbr/15.4.x-cpu-ml-scala2.12/constraints.txt @@ -321,7 +321,7 @@ tqdm~=4.65.0 traitlets~=5.7.1 transformers~=4.41.2 typer~=0.9.4 -typing-extensions~=4.10.0 +typing-extensions>=4.12,<5 typing-inspect~=0.9.0 tzdata~=2022.1 uc-micro-py~=1.0.1 diff --git a/python/dbr/15.4.x-cpu-ml-scala2.12/pyproject.toml b/python/dbr/15.4.x-cpu-ml-scala2.12/pyproject.toml index 99042a7..1cbb3b9 100644 --- a/python/dbr/15.4.x-cpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/15.4.x-cpu-ml-scala2.12/pyproject.toml @@ -333,7 +333,7 @@ constraint-dependencies = [ "traitlets~=5.7.1", "transformers~=4.41.2", "typer~=0.9.4", - "typing-extensions~=4.10.0", + "typing-extensions>=4.12,<5", "typing-inspect~=0.9.0", "tzdata~=2022.1", "uc-micro-py~=1.0.1", diff --git a/python/dbr/15.4.x-gpu-ml-scala2.12/constraints.txt b/python/dbr/15.4.x-gpu-ml-scala2.12/constraints.txt index ff24b88..26ef241 100644 --- a/python/dbr/15.4.x-gpu-ml-scala2.12/constraints.txt +++ b/python/dbr/15.4.x-gpu-ml-scala2.12/constraints.txt @@ -322,7 +322,7 @@ tqdm~=4.65.0 traitlets~=5.7.1 transformers~=4.41.2 typer~=0.9.4 -typing-extensions~=4.10.0 +typing-extensions>=4.12,<5 typing-inspect~=0.9.0 tzdata~=2022.1 uc-micro-py~=1.0.1 diff --git a/python/dbr/15.4.x-gpu-ml-scala2.12/pyproject.toml b/python/dbr/15.4.x-gpu-ml-scala2.12/pyproject.toml index 1b6cb83..0b26b92 100644 --- a/python/dbr/15.4.x-gpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/15.4.x-gpu-ml-scala2.12/pyproject.toml @@ -334,7 +334,7 @@ constraint-dependencies = [ "traitlets~=5.7.1", "transformers~=4.41.2", "typer~=0.9.4", - "typing-extensions~=4.10.0", + "typing-extensions>=4.12,<5", "typing-inspect~=0.9.0", "tzdata~=2022.1", "uc-micro-py~=1.0.1", diff --git a/python/dbr/15.4.x-scala2.12/constraints.txt b/python/dbr/15.4.x-scala2.12/constraints.txt index 7a41049..2d9bcbe 100644 --- a/python/dbr/15.4.x-scala2.12/constraints.txt +++ b/python/dbr/15.4.x-scala2.12/constraints.txt @@ -120,7 +120,7 @@ threadpoolctl~=2.2.0 tokenize-rt~=4.2.1 tornado~=6.3.2 traitlets~=5.7.1 -typing-extensions~=4.10.0 +typing-extensions>=4.12,<5 tzdata~=2022.1 ujson~=5.4.0 urllib3~=1.26.16 diff --git a/python/dbr/15.4.x-scala2.12/pyproject.toml b/python/dbr/15.4.x-scala2.12/pyproject.toml index ad22a2d..0c3123e 100644 --- a/python/dbr/15.4.x-scala2.12/pyproject.toml +++ b/python/dbr/15.4.x-scala2.12/pyproject.toml @@ -132,7 +132,7 @@ constraint-dependencies = [ "tokenize-rt~=4.2.1", "tornado~=6.3.2", "traitlets~=5.7.1", - "typing-extensions~=4.10.0", + "typing-extensions>=4.12,<5", "tzdata~=2022.1", "ujson~=5.4.0", "urllib3~=1.26.16", diff --git a/python/dbr/16.1.x-scala2.12/constraints.txt b/python/dbr/16.1.x-scala2.12/constraints.txt index 34af60b..e225720 100644 --- a/python/dbr/16.1.x-scala2.12/constraints.txt +++ b/python/dbr/16.1.x-scala2.12/constraints.txt @@ -139,7 +139,7 @@ types-requests~=2.31.0.0 types-setuptools~=68.0.0.0 types-six~=1.16.0 types-urllib3~=1.26.25.14 -typing-extensions~=4.11.0 +typing-extensions>=4.12,<5 ujson~=5.10.0 urllib3~=1.26.16 virtualenv~=20.26.2 diff --git a/python/dbr/16.1.x-scala2.12/pyproject.toml b/python/dbr/16.1.x-scala2.12/pyproject.toml index 6d58d07..70e6dec 100644 --- a/python/dbr/16.1.x-scala2.12/pyproject.toml +++ b/python/dbr/16.1.x-scala2.12/pyproject.toml @@ -151,7 +151,7 @@ constraint-dependencies = [ "types-setuptools~=68.0.0.0", "types-six~=1.16.0", "types-urllib3~=1.26.25.14", - "typing-extensions~=4.11.0", + "typing-extensions>=4.12,<5", "ujson~=5.10.0", "urllib3~=1.26.16", "virtualenv~=20.26.2", diff --git a/python/dbr/16.4.x-cpu-ml-scala2.12/constraints.txt b/python/dbr/16.4.x-cpu-ml-scala2.12/constraints.txt index 69112aa..cb38ed8 100644 --- a/python/dbr/16.4.x-cpu-ml-scala2.12/constraints.txt +++ b/python/dbr/16.4.x-cpu-ml-scala2.12/constraints.txt @@ -366,7 +366,7 @@ types-requests~=2.31.0.0 types-setuptools~=68.0.0.0 types-six~=1.16.0 types-urllib3~=1.26.25.14 -typing-extensions~=4.11.0 +typing-extensions>=4.12,<5 uc-micro-py~=1.0.1 ujson~=5.10.0 uri-template~=1.3.0 diff --git a/python/dbr/16.4.x-cpu-ml-scala2.12/pyproject.toml b/python/dbr/16.4.x-cpu-ml-scala2.12/pyproject.toml index e26789d..8230e27 100644 --- a/python/dbr/16.4.x-cpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/16.4.x-cpu-ml-scala2.12/pyproject.toml @@ -378,7 +378,7 @@ constraint-dependencies = [ "types-setuptools~=68.0.0.0", "types-six~=1.16.0", "types-urllib3~=1.26.25.14", - "typing-extensions~=4.11.0", + "typing-extensions>=4.12,<5", "uc-micro-py~=1.0.1", "ujson~=5.10.0", "uri-template~=1.3.0", diff --git a/python/dbr/16.4.x-cpu-ml-scala2.13/constraints.txt b/python/dbr/16.4.x-cpu-ml-scala2.13/constraints.txt index caa2383..57ad7ce 100644 --- a/python/dbr/16.4.x-cpu-ml-scala2.13/constraints.txt +++ b/python/dbr/16.4.x-cpu-ml-scala2.13/constraints.txt @@ -366,7 +366,7 @@ types-requests~=2.31.0.0 types-setuptools~=68.0.0.0 types-six~=1.16.0 types-urllib3~=1.26.25.14 -typing-extensions~=4.11.0 +typing-extensions>=4.12,<5 uc-micro-py~=1.0.1 ujson~=5.10.0 uri-template~=1.3.0 diff --git a/python/dbr/16.4.x-cpu-ml-scala2.13/pyproject.toml b/python/dbr/16.4.x-cpu-ml-scala2.13/pyproject.toml index 5db3231..161083b 100644 --- a/python/dbr/16.4.x-cpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/16.4.x-cpu-ml-scala2.13/pyproject.toml @@ -378,7 +378,7 @@ constraint-dependencies = [ "types-setuptools~=68.0.0.0", "types-six~=1.16.0", "types-urllib3~=1.26.25.14", - "typing-extensions~=4.11.0", + "typing-extensions>=4.12,<5", "uc-micro-py~=1.0.1", "ujson~=5.10.0", "uri-template~=1.3.0", diff --git a/python/dbr/16.4.x-gpu-ml-scala2.12/constraints.txt b/python/dbr/16.4.x-gpu-ml-scala2.12/constraints.txt index 4efa2a0..2b779a3 100644 --- a/python/dbr/16.4.x-gpu-ml-scala2.12/constraints.txt +++ b/python/dbr/16.4.x-gpu-ml-scala2.12/constraints.txt @@ -365,7 +365,7 @@ types-requests~=2.31.0.0 types-setuptools~=68.0.0.0 types-six~=1.16.0 types-urllib3~=1.26.25.14 -typing-extensions~=4.11.0 +typing-extensions>=4.12,<5 uc-micro-py~=1.0.1 ujson~=5.10.0 uri-template~=1.3.0 diff --git a/python/dbr/16.4.x-gpu-ml-scala2.12/pyproject.toml b/python/dbr/16.4.x-gpu-ml-scala2.12/pyproject.toml index 5f809f1..b608f9b 100644 --- a/python/dbr/16.4.x-gpu-ml-scala2.12/pyproject.toml +++ b/python/dbr/16.4.x-gpu-ml-scala2.12/pyproject.toml @@ -377,7 +377,7 @@ constraint-dependencies = [ "types-setuptools~=68.0.0.0", "types-six~=1.16.0", "types-urllib3~=1.26.25.14", - "typing-extensions~=4.11.0", + "typing-extensions>=4.12,<5", "uc-micro-py~=1.0.1", "ujson~=5.10.0", "uri-template~=1.3.0", diff --git a/python/dbr/16.4.x-gpu-ml-scala2.13/constraints.txt b/python/dbr/16.4.x-gpu-ml-scala2.13/constraints.txt index 642c7ed..c5d1583 100644 --- a/python/dbr/16.4.x-gpu-ml-scala2.13/constraints.txt +++ b/python/dbr/16.4.x-gpu-ml-scala2.13/constraints.txt @@ -365,7 +365,7 @@ types-requests~=2.31.0.0 types-setuptools~=68.0.0.0 types-six~=1.16.0 types-urllib3~=1.26.25.14 -typing-extensions~=4.11.0 +typing-extensions>=4.12,<5 uc-micro-py~=1.0.1 ujson~=5.10.0 uri-template~=1.3.0 diff --git a/python/dbr/16.4.x-gpu-ml-scala2.13/pyproject.toml b/python/dbr/16.4.x-gpu-ml-scala2.13/pyproject.toml index 03a256e..f1b4285 100644 --- a/python/dbr/16.4.x-gpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/16.4.x-gpu-ml-scala2.13/pyproject.toml @@ -377,7 +377,7 @@ constraint-dependencies = [ "types-setuptools~=68.0.0.0", "types-six~=1.16.0", "types-urllib3~=1.26.25.14", - "typing-extensions~=4.11.0", + "typing-extensions>=4.12,<5", "uc-micro-py~=1.0.1", "ujson~=5.10.0", "uri-template~=1.3.0", diff --git a/python/dbr/16.4.x-scala2.12/constraints.txt b/python/dbr/16.4.x-scala2.12/constraints.txt index 11e6c03..d6bb013 100644 --- a/python/dbr/16.4.x-scala2.12/constraints.txt +++ b/python/dbr/16.4.x-scala2.12/constraints.txt @@ -138,7 +138,7 @@ types-requests~=2.31.0.0 types-setuptools~=68.0.0.0 types-six~=1.16.0 types-urllib3~=1.26.25.14 -typing-extensions~=4.11.0 +typing-extensions>=4.12,<5 ujson~=5.10.0 urllib3~=1.26.16 virtualenv~=20.26.2 diff --git a/python/dbr/16.4.x-scala2.12/pyproject.toml b/python/dbr/16.4.x-scala2.12/pyproject.toml index 18c01b2..783b0e0 100644 --- a/python/dbr/16.4.x-scala2.12/pyproject.toml +++ b/python/dbr/16.4.x-scala2.12/pyproject.toml @@ -150,7 +150,7 @@ constraint-dependencies = [ "types-setuptools~=68.0.0.0", "types-six~=1.16.0", "types-urllib3~=1.26.25.14", - "typing-extensions~=4.11.0", + "typing-extensions>=4.12,<5", "ujson~=5.10.0", "urllib3~=1.26.16", "virtualenv~=20.26.2", diff --git a/python/dbr/16.4.x-scala2.13/constraints.txt b/python/dbr/16.4.x-scala2.13/constraints.txt index f8555e5..78ba745 100644 --- a/python/dbr/16.4.x-scala2.13/constraints.txt +++ b/python/dbr/16.4.x-scala2.13/constraints.txt @@ -138,7 +138,7 @@ types-requests~=2.31.0.0 types-setuptools~=68.0.0.0 types-six~=1.16.0 types-urllib3~=1.26.25.14 -typing-extensions~=4.11.0 +typing-extensions>=4.12,<5 ujson~=5.10.0 urllib3~=1.26.16 virtualenv~=20.26.2 diff --git a/python/dbr/16.4.x-scala2.13/pyproject.toml b/python/dbr/16.4.x-scala2.13/pyproject.toml index 74fe536..0aeb334 100644 --- a/python/dbr/16.4.x-scala2.13/pyproject.toml +++ b/python/dbr/16.4.x-scala2.13/pyproject.toml @@ -150,7 +150,7 @@ constraint-dependencies = [ "types-setuptools~=68.0.0.0", "types-six~=1.16.0", "types-urllib3~=1.26.25.14", - "typing-extensions~=4.11.0", + "typing-extensions>=4.12,<5", "ujson~=5.10.0", "urllib3~=1.26.16", "virtualenv~=20.26.2", diff --git a/python/dbr/18.0.x-cpu-ml-scala2.13/constraints.txt b/python/dbr/18.0.x-cpu-ml-scala2.13/constraints.txt index 2fe195c..bfb6d0c 100644 --- a/python/dbr/18.0.x-cpu-ml-scala2.13/constraints.txt +++ b/python/dbr/18.0.x-cpu-ml-scala2.13/constraints.txt @@ -102,7 +102,7 @@ google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 graphql-core~=3.2.4 greenlet~=3.1.1 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 gymnasium~=0.28.1 h11~=0.16.0 diff --git a/python/dbr/18.0.x-cpu-ml-scala2.13/pyproject.toml b/python/dbr/18.0.x-cpu-ml-scala2.13/pyproject.toml index 3d91fa2..b5a021c 100644 --- a/python/dbr/18.0.x-cpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/18.0.x-cpu-ml-scala2.13/pyproject.toml @@ -114,7 +114,7 @@ constraint-dependencies = [ "googleapis-common-protos~=1.65.0", "graphql-core~=3.2.4", "greenlet~=3.1.1", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "gymnasium~=0.28.1", "h11~=0.16.0", diff --git a/python/dbr/18.0.x-gpu-ml-scala2.13/constraints.txt b/python/dbr/18.0.x-gpu-ml-scala2.13/constraints.txt index f1c4745..742c372 100644 --- a/python/dbr/18.0.x-gpu-ml-scala2.13/constraints.txt +++ b/python/dbr/18.0.x-gpu-ml-scala2.13/constraints.txt @@ -101,7 +101,7 @@ google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 graphql-core~=3.2.4 greenlet~=3.1.1 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 gymnasium~=0.28.1 h11~=0.16.0 diff --git a/python/dbr/18.0.x-gpu-ml-scala2.13/pyproject.toml b/python/dbr/18.0.x-gpu-ml-scala2.13/pyproject.toml index bda2f5a..61edc99 100644 --- a/python/dbr/18.0.x-gpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/18.0.x-gpu-ml-scala2.13/pyproject.toml @@ -113,7 +113,7 @@ constraint-dependencies = [ "googleapis-common-protos~=1.65.0", "graphql-core~=3.2.4", "greenlet~=3.1.1", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "gymnasium~=0.28.1", "h11~=0.16.0", diff --git a/python/dbr/18.0.x-scala2.13/constraints.txt b/python/dbr/18.0.x-scala2.13/constraints.txt index d3d2332..e8d74a5 100644 --- a/python/dbr/18.0.x-scala2.13/constraints.txt +++ b/python/dbr/18.0.x-scala2.13/constraints.txt @@ -68,7 +68,7 @@ google-cloud-storage~=3.7.0 google-crc32c~=1.8.0 google-resumable-media~=2.8.0 googleapis-common-protos~=1.65.0 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 h11~=0.16.0 hf-xet~=1.2.0 diff --git a/python/dbr/18.0.x-scala2.13/pyproject.toml b/python/dbr/18.0.x-scala2.13/pyproject.toml index 9d38a1d..9798f63 100644 --- a/python/dbr/18.0.x-scala2.13/pyproject.toml +++ b/python/dbr/18.0.x-scala2.13/pyproject.toml @@ -80,7 +80,7 @@ constraint-dependencies = [ "google-crc32c~=1.8.0", "google-resumable-media~=2.8.0", "googleapis-common-protos~=1.65.0", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "h11~=0.16.0", "hf-xet~=1.2.0", diff --git a/python/dbr/18.1.x-cpu-ml-scala2.13/constraints.txt b/python/dbr/18.1.x-cpu-ml-scala2.13/constraints.txt index 20e6bc5..02ac107 100644 --- a/python/dbr/18.1.x-cpu-ml-scala2.13/constraints.txt +++ b/python/dbr/18.1.x-cpu-ml-scala2.13/constraints.txt @@ -102,7 +102,7 @@ google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 graphql-core~=3.2.4 greenlet~=3.1.1 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 gymnasium~=0.28.1 h11~=0.16.0 diff --git a/python/dbr/18.1.x-cpu-ml-scala2.13/pyproject.toml b/python/dbr/18.1.x-cpu-ml-scala2.13/pyproject.toml index c7d954d..572c935 100644 --- a/python/dbr/18.1.x-cpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/18.1.x-cpu-ml-scala2.13/pyproject.toml @@ -114,7 +114,7 @@ constraint-dependencies = [ "googleapis-common-protos~=1.65.0", "graphql-core~=3.2.4", "greenlet~=3.1.1", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "gymnasium~=0.28.1", "h11~=0.16.0", diff --git a/python/dbr/18.1.x-gpu-ml-scala2.13/constraints.txt b/python/dbr/18.1.x-gpu-ml-scala2.13/constraints.txt index cdcc4a1..a4f5bac 100644 --- a/python/dbr/18.1.x-gpu-ml-scala2.13/constraints.txt +++ b/python/dbr/18.1.x-gpu-ml-scala2.13/constraints.txt @@ -101,7 +101,7 @@ google-resumable-media~=2.7.2 googleapis-common-protos~=1.65.0 graphql-core~=3.2.4 greenlet~=3.1.1 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 gymnasium~=0.28.1 h11~=0.16.0 diff --git a/python/dbr/18.1.x-gpu-ml-scala2.13/pyproject.toml b/python/dbr/18.1.x-gpu-ml-scala2.13/pyproject.toml index 1b921be..8227a03 100644 --- a/python/dbr/18.1.x-gpu-ml-scala2.13/pyproject.toml +++ b/python/dbr/18.1.x-gpu-ml-scala2.13/pyproject.toml @@ -113,7 +113,7 @@ constraint-dependencies = [ "googleapis-common-protos~=1.65.0", "graphql-core~=3.2.4", "greenlet~=3.1.1", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "gymnasium~=0.28.1", "h11~=0.16.0", diff --git a/python/dbr/18.1.x-scala2.13/constraints.txt b/python/dbr/18.1.x-scala2.13/constraints.txt index c3542a1..1f83c33 100644 --- a/python/dbr/18.1.x-scala2.13/constraints.txt +++ b/python/dbr/18.1.x-scala2.13/constraints.txt @@ -68,7 +68,7 @@ google-cloud-storage~=3.7.0 google-crc32c~=1.8.0 google-resumable-media~=2.8.0 googleapis-common-protos~=1.65.0 -grpcio~=1.67 +grpcio>=1.84.1,<2 grpcio-status~=1.67 h11~=0.16.0 hf-xet~=1.2.0 diff --git a/python/dbr/18.1.x-scala2.13/pyproject.toml b/python/dbr/18.1.x-scala2.13/pyproject.toml index 9e6fc6a..b4a02ed 100644 --- a/python/dbr/18.1.x-scala2.13/pyproject.toml +++ b/python/dbr/18.1.x-scala2.13/pyproject.toml @@ -80,7 +80,7 @@ constraint-dependencies = [ "google-crc32c~=1.8.0", "google-resumable-media~=2.8.0", "googleapis-common-protos~=1.65.0", - "grpcio~=1.67", + "grpcio>=1.84.1,<2", "grpcio-status~=1.67", "h11~=0.16.0", "hf-xet~=1.2.0", diff --git a/python/serverless/serverless-v1/constraints.txt b/python/serverless/serverless-v1/constraints.txt index eac8ecc..44f7f0a 100644 --- a/python/serverless/serverless-v1/constraints.txt +++ b/python/serverless/serverless-v1/constraints.txt @@ -145,7 +145,7 @@ tokenize-rt~=4.2.1 tomli~=2.0.1 tornado~=6.1 traitlets~=5.7.1 -typing-extensions~=4.4.0 +typing-extensions>=4.12,<5 ujson~=5.4.0 urllib3~=1.26.14 virtualenv~=20.16.7 diff --git a/python/serverless/serverless-v1/pyproject.toml b/python/serverless/serverless-v1/pyproject.toml index f55d90e..613ebd7 100644 --- a/python/serverless/serverless-v1/pyproject.toml +++ b/python/serverless/serverless-v1/pyproject.toml @@ -157,7 +157,7 @@ constraint-dependencies = [ "tomli~=2.0.1", "tornado~=6.1", "traitlets~=5.7.1", - "typing-extensions~=4.4.0", + "typing-extensions>=4.12,<5", "ujson~=5.4.0", "urllib3~=1.26.14", "virtualenv~=20.16.7", diff --git a/python/serverless/serverless-v2/constraints.txt b/python/serverless/serverless-v2/constraints.txt index dfabf8d..783bde7 100644 --- a/python/serverless/serverless-v2/constraints.txt +++ b/python/serverless/serverless-v2/constraints.txt @@ -107,7 +107,7 @@ threadpoolctl~=2.2.0 tokenize-rt~=4.2.1 tornado~=6.3.2 traitlets~=5.13.0 -typing-extensions~=4.10.0 +typing-extensions>=4.12,<5 tzdata~=2022.1 ujson~=5.4.0 urllib3~=1.26.16 diff --git a/python/serverless/serverless-v2/pyproject.toml b/python/serverless/serverless-v2/pyproject.toml index 21dc31a..063fd60 100644 --- a/python/serverless/serverless-v2/pyproject.toml +++ b/python/serverless/serverless-v2/pyproject.toml @@ -119,7 +119,7 @@ constraint-dependencies = [ "tokenize-rt~=4.2.1", "tornado~=6.3.2", "traitlets~=5.13.0", - "typing-extensions~=4.10.0", + "typing-extensions>=4.12,<5", "tzdata~=2022.1", "ujson~=5.4.0", "urllib3~=1.26.16", diff --git a/python/serverless/serverless-v3/constraints.txt b/python/serverless/serverless-v3/constraints.txt index 11cb2e3..2f6dd87 100644 --- a/python/serverless/serverless-v3/constraints.txt +++ b/python/serverless/serverless-v3/constraints.txt @@ -117,7 +117,7 @@ threadpoolctl~=2.2.0 tokenize-rt~=4.2.1 tornado~=6.4.1 traitlets~=5.14.3 -typing-extensions~=4.11.0 +typing-extensions>=4.12,<5 tzdata~=2024.1 ujson~=5.10.0 urllib3~=2.2.2 diff --git a/python/serverless/serverless-v3/pyproject.toml b/python/serverless/serverless-v3/pyproject.toml index 9342e5f..55b32ec 100644 --- a/python/serverless/serverless-v3/pyproject.toml +++ b/python/serverless/serverless-v3/pyproject.toml @@ -129,7 +129,7 @@ constraint-dependencies = [ "tokenize-rt~=4.2.1", "tornado~=6.4.1", "traitlets~=5.14.3", - "typing-extensions~=4.11.0", + "typing-extensions>=4.12,<5", "tzdata~=2024.1", "ujson~=5.10.0", "urllib3~=2.2.2", From 099be7eee7c116375571c6e50813afc969ac2fa9 Mon Sep 17 00:00:00 2001 From: Chris Stephens Date: Sat, 24 Oct 2026 09:33:41 +0000 Subject: [PATCH 3/3] Trim security floor comments Co-authored-by: Isaac --- .github/scripts/envgen.py | 24 +++++++++--------------- .github/scripts/test_envgen.py | 12 ++++++------ 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/.github/scripts/envgen.py b/.github/scripts/envgen.py index fe434a2..488c33f 100644 --- a/.github/scripts/envgen.py +++ b/.github/scripts/envgen.py @@ -12,9 +12,9 @@ because databricks-connect (installed from the dev group) governs their versions and can require outside the runtime's patch line. See ``req`` (CONNECT_GOVERNED) / issues #16,#19,#20. - * Security floors - a package whose runtime version is below a known-vulnerable - cut-off is pinned to ``>=FLOOR,=FLOOR,=FLOOR,=FLOOR,= 3.10; no Python 3.9 environment pins grpcio today. +# grpcio 1.84.1 requires Python >= 3.10. No Python 3.9 environment pins grpcio today. SECURITY_FLOOR = {"grpcio": "1.84.1"} # Floors that a SECURITY_FLOOR release itself requires, so runtimes listing an older -# version stay resolvable. grpcio 1.84.1 requires typing-extensions~=4.12; DBR 13.3 - -# 16.4 and serverless-v1 - v3 list typing-extensions 4.3 - 4.11. +# version stay resolvable. grpcio 1.84.1 requires typing-extensions~=4.12, and DBR +# 13.3 to 16.4 and serverless-v1 to v3 list typing-extensions 4.3 to 4.11. FLOOR_DEPENDENCIES = {"typing-extensions": "4.12"} diff --git a/.github/scripts/test_envgen.py b/.github/scripts/test_envgen.py index 0799e6b..1cfa181 100644 --- a/.github/scripts/test_envgen.py +++ b/.github/scripts/test_envgen.py @@ -103,8 +103,8 @@ def test_grpc_family_widened_to_major_minor(self): class SecurityFloorTest(unittest.TestCase): def test_grpcio_below_floor_raised(self): - # grpcio < 1.84.1 trusts the compromised eMudhra CAs, so every runtime still - # listing an older grpcio gets the floor, keeping the <2 bound ~= would give. + # Every runtime listing grpcio below 1.84.1 gets the floor, with the <2 bound + # that ~= would give. for v in ("1.48.2", "1.60.0", "1.67.0", "1.76.0", "1.84.0", "1.84.0+db1"): self.assertEqual(req("grpcio", v), "grpcio>=1.84.1,<2", v) @@ -113,13 +113,13 @@ def test_grpcio_at_or_above_floor_unchanged(self): self.assertEqual(req("grpcio", "1.85.0"), "grpcio~=1.85") def test_grpcio_status_not_floored(self): - # grpcio-status is not vulnerable, and raising it would pull a newer protobuf - # than the runtime pins; grpcio-status 1.x accepts a newer grpcio. + # grpcio-status has no floor. Raising it would pull a newer protobuf than the + # runtime pins, and grpcio-status 1.x already accepts a newer grpcio. self.assertEqual(req("grpcio-status", "1.60.0"), "grpcio-status~=1.60") def test_typing_extensions_raised_for_grpcio(self): - # grpcio 1.84.1 requires typing-extensions~=4.12; older runtime pins would make - # the floored grpcio unresolvable. + # grpcio 1.84.1 requires typing-extensions~=4.12, so older runtime pins would + # make the floored grpcio unresolvable. self.assertEqual(req("typing-extensions", "4.4.0"), "typing-extensions>=4.12,<5") self.assertEqual(req("typing-extensions", "4.11.0"), "typing-extensions>=4.12,<5") self.assertEqual(req("typing-extensions", "4.12.2"), "typing-extensions~=4.12.2")