From 8f06a7be1a98941ef67a64ead77b56d1fd288804 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Tue, 5 May 2026 15:30:39 -0400 Subject: [PATCH 01/15] feat(core): Update setup.py metadata and python_requires --- packages/google-cloud-core/setup.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/google-cloud-core/setup.py b/packages/google-cloud-core/setup.py index 556bf4a4ec5a..fae690a14eb4 100644 --- a/packages/google-cloud-core/setup.py +++ b/packages/google-cloud-core/setup.py @@ -75,7 +75,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -88,7 +87,7 @@ packages=packages, install_requires=dependencies, extras_require=extras, - python_requires=">=3.9", + python_requires=">=3.10", include_package_data=True, zip_safe=False, ) From 1be57d4af55f120ea7667bdbe93d344bb247629c Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Tue, 5 May 2026 15:30:47 -0400 Subject: [PATCH 02/15] feat(core): Update Nox sessions to remove old versions --- packages/google-cloud-core/noxfile.py | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/google-cloud-core/noxfile.py b/packages/google-cloud-core/noxfile.py index 400a0235d6a4..28a2d32f5fff 100644 --- a/packages/google-cloud-core/noxfile.py +++ b/packages/google-cloud-core/noxfile.py @@ -25,7 +25,6 @@ DEFAULT_PYTHON_VERSION = "3.14" UNIT_TEST_PYTHON_VERSIONS = [ - "3.9", "3.10", "3.11", "3.12", From 12569e2f34b5b204618d769199cda73f2947c3b3 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Tue, 5 May 2026 15:31:02 -0400 Subject: [PATCH 03/15] docs(core): Update README and CONTRIBUTING documentation --- packages/google-cloud-core/CONTRIBUTING.rst | 4 +--- packages/google-cloud-core/README.rst | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/google-cloud-core/CONTRIBUTING.rst b/packages/google-cloud-core/CONTRIBUTING.rst index 7295bcacf2a2..d0a0efa25af1 100644 --- a/packages/google-cloud-core/CONTRIBUTING.rst +++ b/packages/google-cloud-core/CONTRIBUTING.rst @@ -22,7 +22,7 @@ In order to add a feature: documentation. - The feature must work fully on the following CPython versions: - 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 on both UNIX and Windows. + 3.10, 3.11, 3.12, 3.13 and 3.14 on both UNIX and Windows. - The feature must not add unnecessary dependencies (where "unnecessary" is of course subjective, but new dependencies should @@ -197,14 +197,12 @@ Supported Python Versions We support: -- `Python 3.9`_ - `Python 3.10`_ - `Python 3.11`_ - `Python 3.12`_ - `Python 3.13`_ - `Python 3.14`_ -.. _Python 3.9: https://docs.python.org/3.9/ .. _Python 3.10: https://docs.python.org/3.10/ .. _Python 3.11: https://docs.python.org/3.11/ .. _Python 3.12: https://docs.python.org/3.12/ diff --git a/packages/google-cloud-core/README.rst b/packages/google-cloud-core/README.rst index bfd89a74e64c..b850aaf8340b 100644 --- a/packages/google-cloud-core/README.rst +++ b/packages/google-cloud-core/README.rst @@ -32,9 +32,9 @@ to `Python Development Environment Setup Guide`_ for Google Cloud Platform. Supported Python Versions ------------------------- -Python >= 3.9 +Python >= 3.10 Unsupported Python Versions --------------------------- -Python <= 3.8 +Python <= 3.9 From 8fd42a4ddae05d2173db7dad15847b731cc22be8 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Tue, 5 May 2026 15:31:10 -0400 Subject: [PATCH 04/15] feat(core): Remove compatibility code and fallbacks for old versions --- .../google-cloud-core/google/cloud/obsolete/__init__.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/google-cloud-core/google/cloud/obsolete/__init__.py b/packages/google-cloud-core/google/cloud/obsolete/__init__.py index 1588ea53b770..628c1a2d6f67 100644 --- a/packages/google-cloud-core/google/cloud/obsolete/__init__.py +++ b/packages/google-cloud-core/google/cloud/obsolete/__init__.py @@ -14,11 +14,7 @@ """Helpers for deprecated code and modules.""" -try: - import importlib.metadata as metadata -except ImportError: - # For Python 3.7 compatibility - import importlib_metadata as metadata # type: ignore[no-redef] +import importlib.metadata as metadata import warnings From 2814f113e7e5fe3378a68c5e57e1aec18fc70297 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Tue, 5 May 2026 15:31:34 -0400 Subject: [PATCH 05/15] test(core): Update testing constraints to 3.10 and drop 3.9 --- packages/google-cloud-core/pytest.ini | 5 ----- .../google-cloud-core/testing/constraints-3.10.txt | 12 ++++++++++++ .../google-cloud-core/testing/constraints-3.9.txt | 12 ------------ 3 files changed, 12 insertions(+), 17 deletions(-) delete mode 100644 packages/google-cloud-core/testing/constraints-3.9.txt diff --git a/packages/google-cloud-core/pytest.ini b/packages/google-cloud-core/pytest.ini index dd32e71aa024..e6884daf4030 100644 --- a/packages/google-cloud-core/pytest.ini +++ b/packages/google-cloud-core/pytest.ini @@ -4,11 +4,6 @@ filterwarnings = error # Remove once https://github.com/protocolbuffers/protobuf/issues/12186 is fixed ignore:.*custom tp_new.*in Python 3.14:DeprecationWarning - # Remove after support for Python 3.7 is dropped - ignore:After January 1, 2024, new releases of this library will drop support for Python 3.7:DeprecationWarning # Remove once the minimum supported version of `google-api-core` is 2.15.0 ignore:.*pkg_resources.declare_namespace:DeprecationWarning ignore:.*pkg_resources is deprecated as an API:DeprecationWarning - # Remove after support for Python 3.8, 3.9 and/or 3.10+ is dropped - ignore:\s*You are using a (non-supported )?Python version \(?3\.(8|9|1[0-9]+):DeprecationWarning - ignore:\s*You are using a (non-supported )?Python version \(?3\.(8|9|1[0-9]+):FutureWarning diff --git a/packages/google-cloud-core/testing/constraints-3.10.txt b/packages/google-cloud-core/testing/constraints-3.10.txt index e69de29bb2d1..d3737a8c2731 100644 --- a/packages/google-cloud-core/testing/constraints-3.10.txt +++ b/packages/google-cloud-core/testing/constraints-3.10.txt @@ -0,0 +1,12 @@ +# This constraints file is used to check that lower bounds +# are correct in setup.py +# List *all* library dependencies and extras in this file. +# Pin the version to the lower bound. +# +# e.g., if setup.py has "foo >= 1.14.0, < 2.0.0dev", +# Then this file should have foo==1.14.0 +google-api-core==2.11.0 +google-auth==2.14.1 +grpcio==1.38.0 +# cryptography is a direct dependency of google-auth +cryptography==38.0.3 diff --git a/packages/google-cloud-core/testing/constraints-3.9.txt b/packages/google-cloud-core/testing/constraints-3.9.txt deleted file mode 100644 index d3737a8c2731..000000000000 --- a/packages/google-cloud-core/testing/constraints-3.9.txt +++ /dev/null @@ -1,12 +0,0 @@ -# This constraints file is used to check that lower bounds -# are correct in setup.py -# List *all* library dependencies and extras in this file. -# Pin the version to the lower bound. -# -# e.g., if setup.py has "foo >= 1.14.0, < 2.0.0dev", -# Then this file should have foo==1.14.0 -google-api-core==2.11.0 -google-auth==2.14.1 -grpcio==1.38.0 -# cryptography is a direct dependency of google-auth -cryptography==38.0.3 From c3e6d630bccc27a97a0fb3bb99fddc413034a9ce Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Tue, 5 May 2026 15:32:18 -0400 Subject: [PATCH 06/15] fix(core): Bump grpcio to 1.47.0 to fix Python 3.10 build failures --- packages/google-cloud-core/setup.py | 4 ++-- packages/google-cloud-core/testing/constraints-3.10.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/google-cloud-core/setup.py b/packages/google-cloud-core/setup.py index fae690a14eb4..360fdf4cccb5 100644 --- a/packages/google-cloud-core/setup.py +++ b/packages/google-cloud-core/setup.py @@ -33,9 +33,9 @@ ] extras = { "grpc": [ - "grpcio >= 1.38.0, < 2.0.0; python_version < '3.14'", + "grpcio >= 1.47.0, < 2.0.0; python_version < '3.14'", "grpcio >= 1.75.1, < 2.0.0; python_version >= '3.14'", - "grpcio-status >= 1.38.0, < 2.0.0", + "grpcio-status >= 1.47.0, < 2.0.0", ], } diff --git a/packages/google-cloud-core/testing/constraints-3.10.txt b/packages/google-cloud-core/testing/constraints-3.10.txt index d3737a8c2731..9447213dcb2e 100644 --- a/packages/google-cloud-core/testing/constraints-3.10.txt +++ b/packages/google-cloud-core/testing/constraints-3.10.txt @@ -7,6 +7,6 @@ # Then this file should have foo==1.14.0 google-api-core==2.11.0 google-auth==2.14.1 -grpcio==1.38.0 +grpcio==1.47.0 # cryptography is a direct dependency of google-auth cryptography==38.0.3 From 92fdf81f4232d2a6dd4c6fb37047179e902c8058 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Tue, 5 May 2026 16:09:59 -0400 Subject: [PATCH 07/15] fix(core): Restore Python 3.10+ warning ignores in pytest.ini --- packages/google-cloud-core/pytest.ini | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/google-cloud-core/pytest.ini b/packages/google-cloud-core/pytest.ini index e6884daf4030..15707d8ab68f 100644 --- a/packages/google-cloud-core/pytest.ini +++ b/packages/google-cloud-core/pytest.ini @@ -7,3 +7,6 @@ filterwarnings = # Remove once the minimum supported version of `google-api-core` is 2.15.0 ignore:.*pkg_resources.declare_namespace:DeprecationWarning ignore:.*pkg_resources is deprecated as an API:DeprecationWarning + # Remove after support for Python 3.8, 3.9 and/or 3.10+ is dropped + ignore:\s*You are using a (non-supported )?Python version \(?3\.(8|9|1[0-9]+):DeprecationWarning + ignore:\s*You are using a (non-supported )?Python version \(?3\.(8|9|1[0-9]+):FutureWarning From 89f3df1d7bfc34983528f47dae1eef0e081908ad Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Wed, 6 May 2026 07:13:24 -0400 Subject: [PATCH 08/15] docs(core): Update README and CONTRIBUTING for Python 3.9 drop --- packages/google-cloud-core/CONTRIBUTING.rst | 11 ----------- packages/google-cloud-core/README.rst | 2 +- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/packages/google-cloud-core/CONTRIBUTING.rst b/packages/google-cloud-core/CONTRIBUTING.rst index d0a0efa25af1..f4ec66686af0 100644 --- a/packages/google-cloud-core/CONTRIBUTING.rst +++ b/packages/google-cloud-core/CONTRIBUTING.rst @@ -215,17 +215,6 @@ Supported versions can be found in our ``noxfile.py`` `config`_. .. _config: https://github.com/googleapis/google-cloud-python/blob/main/noxfile.py -We also explicitly decided to support Python 3 beginning with version 3.9. -Reasons for this include: - -- Encouraging use of newest versions of Python 3 -- Taking the lead of `prominent`_ open-source `projects`_ -- `Unicode literal support`_ which allows for a cleaner codebase that - works in both Python 2 and Python 3 - -.. _prominent: https://docs.djangoproject.com/en/1.9/faq/install/#what-python-version-can-i-use-with-django -.. _projects: http://flask.pocoo.org/docs/0.10/python3/ -.. _Unicode literal support: https://www.python.org/dev/peps/pep-0414/ ********** Versioning diff --git a/packages/google-cloud-core/README.rst b/packages/google-cloud-core/README.rst index b850aaf8340b..b7bf1dec9a94 100644 --- a/packages/google-cloud-core/README.rst +++ b/packages/google-cloud-core/README.rst @@ -36,5 +36,5 @@ Python >= 3.10 Unsupported Python Versions --------------------------- - +.. version-scanner: ignore-next-line Python <= 3.9 From 8108a40785a1142fb86de5a6ff000f51484c8c09 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Wed, 6 May 2026 07:13:28 -0400 Subject: [PATCH 09/15] test(core): Add scanner ignores in pytest.ini --- packages/google-cloud-core/pytest.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/google-cloud-core/pytest.ini b/packages/google-cloud-core/pytest.ini index 15707d8ab68f..3b0b5917f906 100644 --- a/packages/google-cloud-core/pytest.ini +++ b/packages/google-cloud-core/pytest.ini @@ -8,5 +8,7 @@ filterwarnings = ignore:.*pkg_resources.declare_namespace:DeprecationWarning ignore:.*pkg_resources is deprecated as an API:DeprecationWarning # Remove after support for Python 3.8, 3.9 and/or 3.10+ is dropped + # version-scanner: ignore-next-line ignore:\s*You are using a (non-supported )?Python version \(?3\.(8|9|1[0-9]+):DeprecationWarning + # version-scanner: ignore-next-line ignore:\s*You are using a (non-supported )?Python version \(?3\.(8|9|1[0-9]+):FutureWarning From 6399cb3b7462cc9c98fe062e7f4b55dbcd376e97 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Wed, 6 May 2026 07:13:42 -0400 Subject: [PATCH 10/15] test(core): Add scanner ignore to comment in pytest.ini --- packages/google-cloud-core/pytest.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-core/pytest.ini b/packages/google-cloud-core/pytest.ini index 3b0b5917f906..736f7eb5687c 100644 --- a/packages/google-cloud-core/pytest.ini +++ b/packages/google-cloud-core/pytest.ini @@ -7,7 +7,7 @@ filterwarnings = # Remove once the minimum supported version of `google-api-core` is 2.15.0 ignore:.*pkg_resources.declare_namespace:DeprecationWarning ignore:.*pkg_resources is deprecated as an API:DeprecationWarning - # Remove after support for Python 3.8, 3.9 and/or 3.10+ is dropped + # Remove after support for Python 3.8, 3.9 and/or 3.10+ is dropped # version-scanner: ignore # version-scanner: ignore-next-line ignore:\s*You are using a (non-supported )?Python version \(?3\.(8|9|1[0-9]+):DeprecationWarning # version-scanner: ignore-next-line From 026ada79ec2c73b9fe6a90181781d9c5053826ce Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Wed, 6 May 2026 07:14:21 -0400 Subject: [PATCH 11/15] test(core): Update pytest.ini to remove references to EOL Python versions --- packages/google-cloud-core/pytest.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-core/pytest.ini b/packages/google-cloud-core/pytest.ini index 736f7eb5687c..8f95a78a31dc 100644 --- a/packages/google-cloud-core/pytest.ini +++ b/packages/google-cloud-core/pytest.ini @@ -7,7 +7,7 @@ filterwarnings = # Remove once the minimum supported version of `google-api-core` is 2.15.0 ignore:.*pkg_resources.declare_namespace:DeprecationWarning ignore:.*pkg_resources is deprecated as an API:DeprecationWarning - # Remove after support for Python 3.8, 3.9 and/or 3.10+ is dropped # version-scanner: ignore + # Remove after support for Python 3.10+ is dropped # version-scanner: ignore-next-line ignore:\s*You are using a (non-supported )?Python version \(?3\.(8|9|1[0-9]+):DeprecationWarning # version-scanner: ignore-next-line From 32ef71954d2e38558782776912b22459c875c166 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Wed, 6 May 2026 07:56:27 -0400 Subject: [PATCH 12/15] chore(google-cloud-core): remove scanner pragmas and apply formatting --- packages/google-cloud-core/noxfile.py | 2 +- packages/google-cloud-core/pytest.ini | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/google-cloud-core/noxfile.py b/packages/google-cloud-core/noxfile.py index 28a2d32f5fff..18c0e1afa8d5 100644 --- a/packages/google-cloud-core/noxfile.py +++ b/packages/google-cloud-core/noxfile.py @@ -341,7 +341,7 @@ def core_deps_from_source(session, protobuf_implementation): f"{CURRENT_DIRECTORY}/../google-api-core", f"{CURRENT_DIRECTORY}/../google-auth", f"{CURRENT_DIRECTORY}/../grpc-google-iam-v1", - f"{CURRENT_DIRECTORY}/../proto-plus" + f"{CURRENT_DIRECTORY}/../proto-plus", ] for dep in core_dependencies_from_source: diff --git a/packages/google-cloud-core/pytest.ini b/packages/google-cloud-core/pytest.ini index 8f95a78a31dc..06dab82feb88 100644 --- a/packages/google-cloud-core/pytest.ini +++ b/packages/google-cloud-core/pytest.ini @@ -8,7 +8,5 @@ filterwarnings = ignore:.*pkg_resources.declare_namespace:DeprecationWarning ignore:.*pkg_resources is deprecated as an API:DeprecationWarning # Remove after support for Python 3.10+ is dropped - # version-scanner: ignore-next-line ignore:\s*You are using a (non-supported )?Python version \(?3\.(8|9|1[0-9]+):DeprecationWarning - # version-scanner: ignore-next-line ignore:\s*You are using a (non-supported )?Python version \(?3\.(8|9|1[0-9]+):FutureWarning From c76e31345fa6ac26c5045319125c2de8fb83bd1d Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Wed, 6 May 2026 08:06:26 -0400 Subject: [PATCH 13/15] chore(google-cloud-core): add grpcio-status to constraints-3.10.txt --- packages/google-cloud-core/testing/constraints-3.10.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/google-cloud-core/testing/constraints-3.10.txt b/packages/google-cloud-core/testing/constraints-3.10.txt index 9447213dcb2e..b6e9a0b1f23b 100644 --- a/packages/google-cloud-core/testing/constraints-3.10.txt +++ b/packages/google-cloud-core/testing/constraints-3.10.txt @@ -8,5 +8,6 @@ google-api-core==2.11.0 google-auth==2.14.1 grpcio==1.47.0 +grpcio-status==1.47.0 # cryptography is a direct dependency of google-auth cryptography==38.0.3 From 4fcaa1efe6c6b8af050c9750dc4d6767d0957092 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Wed, 6 May 2026 08:34:03 -0400 Subject: [PATCH 14/15] chore(google-cloud-core): remove scanner pragma from README.rst to fix lint --- packages/google-cloud-core/README.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/google-cloud-core/README.rst b/packages/google-cloud-core/README.rst index b7bf1dec9a94..ede55e346a10 100644 --- a/packages/google-cloud-core/README.rst +++ b/packages/google-cloud-core/README.rst @@ -36,5 +36,4 @@ Python >= 3.10 Unsupported Python Versions --------------------------- -.. version-scanner: ignore-next-line Python <= 3.9 From 382d2eec4aa7bfdd2157580e255d19501065a800 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Wed, 6 May 2026 09:36:11 -0400 Subject: [PATCH 15/15] docs(google-cloud-core): sync README.rst to docs folder --- packages/google-cloud-core/docs/README.rst | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/google-cloud-core/docs/README.rst b/packages/google-cloud-core/docs/README.rst index bfd89a74e64c..ede55e346a10 100644 --- a/packages/google-cloud-core/docs/README.rst +++ b/packages/google-cloud-core/docs/README.rst @@ -32,9 +32,8 @@ to `Python Development Environment Setup Guide`_ for Google Cloud Platform. Supported Python Versions ------------------------- -Python >= 3.9 +Python >= 3.10 Unsupported Python Versions --------------------------- - -Python <= 3.8 +Python <= 3.9