ephraimbuddy commented on code in PR #76503:
URL: https://github.com/apache/airflow/pull/76503#discussion_r4485144656


##########
providers/google/pyproject.toml:
##########
@@ -83,10 +83,20 @@ dependencies = [
     # google-cloud-aiplatform doesn't install ray for python 3.12 (issue: 
https://github.com/googleapis/python-aiplatform/issues/5252).
     # Temporarily lock in ray 2.42.0 which is compatible with python 3.12 
until linked issue is solved.
     # Remove the ray dependency as well as google-cloud-bigquery-storage once 
linked issue is fixed
-    # Floor raised to 1.164.0: earlier "evaluation" extras cap litellm below 
the version that
-    # carries the fixes for CVE-2026-35030 and its follow-on advisories on 
Python 3.14.
-    # - https://github.com/googleapis/python-aiplatform/issues/7057
-    "google-cloud-aiplatform[evaluation]>=1.164.0",
+    # The dependencies of google-cloud-aiplatform's "evaluation" extra, except 
litellm, which
+    # vertexai.preview.evaluation (what the generative model hook uses) never 
imports; only the
+    # vertexai._genai evals client does, behind an ImportError guard. The 
extra caps litellm at a
+    # version that still requires openai<3, and below the fix for a critical 
litellm advisory:
+    # https://github.com/googleapis/python-aiplatform/issues/7252
+    # The extra's pandas is listed further down. The floors of jsonschema, 
pyyaml and tqdm match
+    # the other Airflow distributions; scikit-learn 1.7.2 is the first release 
with Python 3.14
+    # wheels.
+    "google-cloud-aiplatform>=1.164.0",
+    "jsonschema>=4.19.1",
+    "pyyaml>=6.0.3",
+    "ruamel.yaml>=0.18.0",
+    "scikit-learn>=1.7.2",

Review Comment:
   The 1.7.2 floor is only needed for cp314 wheels, but this applies it to 
3.11–3.13 too. The extra had no floor there, so anyone pinning an older 
scikit-learn now gets pip backtracking to an older Google provider. Can we gate 
it by `python_version` like the pandas/ray lines?
   
   ```suggestion
       "scikit-learn>=1.4.2;python_version<'3.13'",
       "scikit-learn>=1.5.2;python_version>='3.13' and python_version<'3.14'",
       "scikit-learn>=1.7.2;python_version>='3.14'",
   ```
   
   (1.4.2 is the first with numpy 2 support, 1.5.2 the first with cp313 wheels; 
the lowest-deps job would confirm.)
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by @ephraimbuddy before posting



##########
pyproject.toml:
##########
@@ -1467,24 +1467,18 @@ ci-image = [
 # floor; `scripts/ci/prek/upgrade_important_versions.py` deliberately skips it.
 required-version = ">=0.13.4"
 no-build-isolation-package = ["sphinx-redoc"]
-# pydantic-ai-slim[openai]>=2.33 declares openai>=3 (>=3.8 from 2.39), while
-# llama-index-llms-openai (<=0.8.1) and litellm (<=1.102.0, pulled in by the 
Google provider's
-# google-cloud-aiplatform[evaluation]) still cap openai below 3. Without this 
override the
-# workspace lock cannot move pydantic-ai-slim past 2.31, which is incompatible 
with anthropic
-# 1.x, so the Anthropic path could not run in the CI image at all. Holding 
openai on 2.x is the
-# pairing constraints-main already ships and the one `pip check` in the image 
build accepts
-# (pip ignores extra-gated requirements, but not llama-index's unconditional 
cap). pydantic-ai's
-# OpenAI model works against openai 2.x at runtime; the declared floor tracks 
the SDK's httpx2
-# move. Published wheels are unaffected: overrides only shape uv.lock and the 
CI image. Drop this
-# once run-llama/llama_index#22939 and BerriAI/litellm#40317 land and 
google-cloud-aiplatform
-# lifts its litellm cap (<1.86 below Python 3.14) far enough to reach the 
fixed litellm.
-override-dependencies = ["openai>=2.47.0,<3"]
-# The override replaces every package's openai requirement, not only 
pydantic-ai-slim's, so the
-# resolver no longer rejects a release that needs openai>=3 unconditionally, 
and only `pip check`
-# in the image build catches it. Cap each such package here at its last openai 
2.x release, which
-# is what the resolver would pick without the override. azure-ai-projects 
2.5.0 moved to
-# openai>=3.0.0; the Azure provider needs >=2.2.0.
-constraint-dependencies = ["azure-ai-projects<2.5"]
+# Common AI's "llamaindex" extra cannot be installed alongside its "openai" 
extra:
+# llama-index-llms-openai (up to 0.8.3) caps openai below 3, and 
pydantic-ai-slim[openai]>=2.33
+# needs openai>=3. Declaring them as conflicting lets uv.lock resolve each one 
on its own, so the
+# CI image gets openai 3 and the LlamaIndex tests run in the agent framework 
job instead, with
+# the openai 2.x that llama-index pulls in. Remove this once 
run-llama/llama_index#22939 is
+# released and the llama-index packages are back in Common AI's dev group.

Review Comment:
   Nit: can this also name `LOWEST_DEPENDENCIES_EXCLUDED_EXTRAS`, the 
`llama-index` matrix/verification-plan entry and `released=(openai)`? If only 
the conflict is dropped, the `llamaindex` extra stays out of the lowest-deps 
sync silently.
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by @ephraimbuddy before posting



##########
providers/google/pyproject.toml:
##########
@@ -83,10 +83,20 @@ dependencies = [
     # google-cloud-aiplatform doesn't install ray for python 3.12 (issue: 
https://github.com/googleapis/python-aiplatform/issues/5252).
     # Temporarily lock in ray 2.42.0 which is compatible with python 3.12 
until linked issue is solved.
     # Remove the ray dependency as well as google-cloud-bigquery-storage once 
linked issue is fixed
-    # Floor raised to 1.164.0: earlier "evaluation" extras cap litellm below 
the version that
-    # carries the fixes for CVE-2026-35030 and its follow-on advisories on 
Python 3.14.
-    # - https://github.com/googleapis/python-aiplatform/issues/7057
-    "google-cloud-aiplatform[evaluation]>=1.164.0",
+    # The dependencies of google-cloud-aiplatform's "evaluation" extra, except 
litellm, which
+    # vertexai.preview.evaluation (what the generative model hook uses) never 
imports; only the
+    # vertexai._genai evals client does, behind an ImportError guard. The 
extra caps litellm at a
+    # version that still requires openai<3, and below the fix for a critical 
litellm advisory:
+    # https://github.com/googleapis/python-aiplatform/issues/7252
+    # The extra's pandas is listed further down. The floors of jsonschema, 
pyyaml and tqdm match
+    # the other Airflow distributions; scikit-learn 1.7.2 is the first release 
with Python 3.14
+    # wheels.
+    "google-cloud-aiplatform>=1.164.0",

Review Comment:
   The provider stops installing litellm here. Can we add a `.. note::` to the 
Google changelog for it? Anyone using the `vertexai` `Client().evals` path with 
LiteLLM models will need to install it themselves.
   
   ---
   Drafted-by: Claude Code (Opus 5.5); reviewed by @ephraimbuddy before posting



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to