From 0e41b98526acbce45cf4593d35a3229d2d8fbafe Mon Sep 17 00:00:00 2001 From: Jennifer Davis Date: Sat, 14 Nov 2026 00:57:44 +0000 Subject: [PATCH] chore(genai): move blocked Gen AI sample directories to Python 3.12 and google-genai 2.34.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These directories can't upgrade to google-genai 3.0.0 yet: they use features that only `google-cloud-aiplatform` provides (Vertex AI Pipelines, the Gen AI evaluation service, and RAG Engine), and every `google-cloud-aiplatform` release, including the latest, requires `google-genai<3.0.0`. They still tested on Python 3.10 (end of life) and 3.14 or 3.11. Changes: - Directories: genai/embeddings, genai/evaluation, genai/model_tuning, generative_ai/rag, and the Dataflow flex template `pipeline_with_dependencies` (where google-genai is a transitive dependency of `apache-beam[gcp]`). - Test on Python 3.12 (3.14 unchanged). Dataflow already tests 3.13. - Pin `google-genai==2.34.0` (the latest 2.x), with a comment in each `requirements.txt` explaining why the directory stays on 2.x. - genai/evaluation: bump `google-auth` 2.55.2 → 2.62.2 (2.34.0 requires 2.56.0 or later). - generative_ai/rag: bump `pytest-asyncio` 0.23.6 → 1.4.0. 0.23.6 requires `pytest<9`, which conflicts with the pinned `pytest==9.0.3`, so the test requirements couldn't be installed. - Dataflow: regenerate `requirements.txt` with `pip-compile --upgrade-package google-genai==2.34.0` (one-line change). Testing: Live tests ran against a Google Cloud test project on Python 3.12. Every directory with a failure was also run with the pins from `main`: no test that passes on `main` fails with these changes. Remaining failures are listed below and also fail on `main`. - embeddings 7/7 and model_tuning 2/2 pass (same as `main`). - evaluation 0/1, the same as `main` (`gemini-2.5-flash` isn't available in `global` in the test project). - rag: the tests skip themselves (issue #11557). Run with the skip removed: 8 of 16 pass, the same as with `main`'s pins. The other 8 fail the same way on `main` (third-party vector database corpus samples, and test data in another project). --- .../pipeline_with_dependencies/requirements.txt | 2 +- genai/embeddings/noxfile_config.py | 2 +- genai/embeddings/requirements.txt | 3 ++- genai/evaluation/noxfile_config.py | 2 +- genai/evaluation/requirements.txt | 5 +++-- genai/model_tuning/noxfile_config.py | 2 +- genai/model_tuning/requirements.txt | 3 ++- generative_ai/rag/noxfile_config.py | 2 +- generative_ai/rag/requirements-test.txt | 2 +- generative_ai/rag/requirements.txt | 3 ++- 10 files changed, 15 insertions(+), 11 deletions(-) diff --git a/dataflow/flex-templates/pipeline_with_dependencies/requirements.txt b/dataflow/flex-templates/pipeline_with_dependencies/requirements.txt index ca9dbcb3adc..5f111580472 100644 --- a/dataflow/flex-templates/pipeline_with_dependencies/requirements.txt +++ b/dataflow/flex-templates/pipeline_with_dependencies/requirements.txt @@ -176,7 +176,7 @@ google-crc32c==1.9.0 # google-cloud-bigtable # google-cloud-storage # google-resumable-media -google-genai==2.30.1 +google-genai==2.34.0 # via google-cloud-aiplatform google-resumable-media==2.11.0 # via diff --git a/genai/embeddings/noxfile_config.py b/genai/embeddings/noxfile_config.py index 0973c8621c7..f4391d5680d 100644 --- a/genai/embeddings/noxfile_config.py +++ b/genai/embeddings/noxfile_config.py @@ -22,7 +22,7 @@ TEST_CONFIG_OVERRIDE = { # You can opt out from the test for specific Python versions. - "ignored_versions": ["3.8", "3.9", "3.11", "3.12", "3.13"], + "ignored_versions": ["3.8", "3.9", "3.10", "3.11", "3.13"], # Old samples are opted out of enforcing Python type hints # All new samples should feature them "enforce_type_hints": True, diff --git a/genai/embeddings/requirements.txt b/genai/embeddings/requirements.txt index 88bf66e0d7d..1c654f5a48d 100644 --- a/genai/embeddings/requirements.txt +++ b/genai/embeddings/requirements.txt @@ -1,2 +1,3 @@ -google-genai==2.16.0 +# google-genai stays on 2.x: google-cloud-aiplatform (Vertex AI Pipelines) requires google-genai<3.0.0. +google-genai==2.34.0 google-cloud-aiplatform[pipelines]==1.163.0 diff --git a/genai/evaluation/noxfile_config.py b/genai/evaluation/noxfile_config.py index 610630abf66..7cd1c850d86 100644 --- a/genai/evaluation/noxfile_config.py +++ b/genai/evaluation/noxfile_config.py @@ -22,7 +22,7 @@ TEST_CONFIG_OVERRIDE = { # You can opt out from the test for specific Python versions. - "ignored_versions": ["3.8", "3.9", "3.10", "3.12", "3.13"], + "ignored_versions": ["3.8", "3.9", "3.10", "3.11", "3.13"], # Old samples are opted out of enforcing Python type hints # All new samples should feature them "enforce_type_hints": True, diff --git a/genai/evaluation/requirements.txt b/genai/evaluation/requirements.txt index f039d20dab4..2433ff1ff11 100644 --- a/genai/evaluation/requirements.txt +++ b/genai/evaluation/requirements.txt @@ -1,4 +1,5 @@ pandas==2.3.3 -google-auth==2.55.2 +google-auth==2.62.2 google-cloud-aiplatform[evaluation]==1.161.0 -google-genai==2.12.1 +# google-genai stays on 2.x: google-cloud-aiplatform (Gen AI evaluation service) requires google-genai<3.0.0. +google-genai==2.34.0 diff --git a/genai/model_tuning/noxfile_config.py b/genai/model_tuning/noxfile_config.py index 650b3c47840..7cd1c850d86 100644 --- a/genai/model_tuning/noxfile_config.py +++ b/genai/model_tuning/noxfile_config.py @@ -22,7 +22,7 @@ TEST_CONFIG_OVERRIDE = { # You can opt out from the test for specific Python versions. - "ignored_versions": ["3.8", "3.9", "3.11", "3.12", "3.13"], + "ignored_versions": ["3.8", "3.9", "3.10", "3.11", "3.13"], # Old samples are opted out of enforcing Python type hints # All new samples should feature them "enforce_type_hints": True, diff --git a/genai/model_tuning/requirements.txt b/genai/model_tuning/requirements.txt index d5ef3b41e1a..0fa4bd4ceea 100644 --- a/genai/model_tuning/requirements.txt +++ b/genai/model_tuning/requirements.txt @@ -1,2 +1,3 @@ -google-genai==2.16.0 +# google-genai stays on 2.x: google-cloud-aiplatform (Gen AI evaluation service) requires google-genai<3.0.0. +google-genai==2.34.0 google-cloud-aiplatform[pipelines, evaluation]==1.163.0 diff --git a/generative_ai/rag/noxfile_config.py b/generative_ai/rag/noxfile_config.py index 0973c8621c7..f4391d5680d 100644 --- a/generative_ai/rag/noxfile_config.py +++ b/generative_ai/rag/noxfile_config.py @@ -22,7 +22,7 @@ TEST_CONFIG_OVERRIDE = { # You can opt out from the test for specific Python versions. - "ignored_versions": ["3.8", "3.9", "3.11", "3.12", "3.13"], + "ignored_versions": ["3.8", "3.9", "3.10", "3.11", "3.13"], # Old samples are opted out of enforcing Python type hints # All new samples should feature them "enforce_type_hints": True, diff --git a/generative_ai/rag/requirements-test.txt b/generative_ai/rag/requirements-test.txt index baa23bf9c3e..63dd92c4969 100644 --- a/generative_ai/rag/requirements-test.txt +++ b/generative_ai/rag/requirements-test.txt @@ -1,4 +1,4 @@ backoff==2.2.1 google-api-core==2.19.0 pytest==9.0.3; python_version >= "3.10" -pytest-asyncio==0.23.6 +pytest-asyncio==1.4.0 diff --git a/generative_ai/rag/requirements.txt b/generative_ai/rag/requirements.txt index fe0949f2d27..c7353a2e6de 100644 --- a/generative_ai/rag/requirements.txt +++ b/generative_ai/rag/requirements.txt @@ -1,2 +1,3 @@ google-cloud-aiplatform==2.6.0 -google-genai==2.29.0 +# google-genai stays on 2.x: google-cloud-aiplatform (RAG Engine) requires google-genai<3.0.0. +google-genai==2.34.0