From fb3a9add2b1e6ed1c6570cc5288dd4774db61322 Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Fri, 13 Mar 2026 15:35:46 +0000 Subject: [PATCH 1/6] fix: Require Python 3.9 --- packages/bigquery-magics/CONTRIBUTING.rst | 23 ------ packages/bigquery-magics/mypy.ini | 2 +- packages/bigquery-magics/noxfile.py | 55 +------------- packages/bigquery-magics/setup.py | 3 +- .../testing/constraints-3.8.txt | 17 ----- .../testing/constraints-3.9.txt | 3 +- packages/db-dtypes/CONTRIBUTING.rst | 31 +------- packages/db-dtypes/noxfile.py | 11 +-- packages/db-dtypes/setup.py | 3 +- .../db-dtypes/testing/constraints-3.8.txt | 5 -- .../db-dtypes/testing/constraints-3.9.txt | 11 +++ packages/google-auth-httplib2/noxfile.py | 2 - packages/google-auth-httplib2/setup.py | 4 +- .../testing/constraints-3.7.txt | 8 --- .../testing/constraints-3.8.txt | 0 .../testing/constraints-3.9.txt | 9 +++ .../google-auth-oauthlib/CONTRIBUTING.rst | 36 ++-------- packages/google-auth-oauthlib/README.rst | 9 +-- packages/google-auth-oauthlib/noxfile.py | 27 +------ packages/google-auth-oauthlib/setup.py | 4 +- .../testing/constraints-3.7.txt | 10 --- .../testing/constraints-3.8.txt | 0 packages/google-auth/CONTRIBUTING.rst | 2 +- packages/google-auth/README.rst | 8 ++- packages/google-auth/noxfile.py | 7 +- packages/google-auth/setup.py | 3 +- .../google-auth/testing/constraints-3.8.txt | 13 ---- .../google-auth/testing/constraints-3.9.txt | 12 ++++ .../README.rst | 4 +- .../docs/README.rst | 4 +- .../noxfile.py | 29 +------- .../setup.py | 6 +- .../testing/constraints-3.7.txt | 9 --- .../testing/constraints-3.8.txt | 0 .../testing/constraints-3.9.txt | 9 +++ packages/google-cloud-audit-log/README.rst | 4 +- .../google-cloud-audit-log/docs/README.rst | 4 +- packages/google-cloud-audit-log/noxfile.py | 29 +------- packages/google-cloud-audit-log/setup.py | 6 +- .../testing/constraints-3.7.txt | 22 ------ .../testing/constraints-3.8.txt | 13 ---- .../testing/constraints-3.9.txt | 22 ++++++ packages/google-cloud-core/CONTRIBUTING.rst | 34 ++------- packages/google-cloud-core/README.rst | 7 +- packages/google-cloud-core/noxfile.py | 22 +----- packages/google-cloud-core/setup.py | 5 +- .../testing/constraints-3.7.txt | 14 ---- .../testing/constraints-3.8.txt | 0 .../testing/constraints-3.9.txt | 12 ++++ packages/google-cloud-dns/CONTRIBUTING.rst | 32 +-------- packages/google-cloud-dns/README.rst | 4 +- packages/google-cloud-dns/noxfile.py | 60 +--------------- packages/google-cloud-dns/setup.py | 4 +- .../testing/constraints-3.7.txt | 8 --- .../testing/constraints-3.8.txt | 0 .../testing/constraints-3.9.txt | 8 +++ .../CONTRIBUTING.rst | 30 +------- .../README.rst | 14 +--- .../noxfile.py | 35 ++------- .../google-cloud-documentai-toolbox/setup.py | 3 +- .../testing/constraints-3.8.txt | 17 ----- .../testing/constraints-3.9.txt | 26 ++++--- packages/google-cloud-ndb/CONTRIBUTING.rst | 9 +-- packages/google-cloud-ndb/README.md | 4 +- packages/google-cloud-ndb/noxfile.py | 13 +--- packages/google-cloud-ndb/setup.py | 6 +- .../testing/constraints-3.7.txt | 15 ---- .../testing/constraints-3.8.txt | 0 .../testing/constraints-3.9.txt | 15 ++++ .../CONTRIBUTING.rst | 36 ++-------- .../google-cloud-runtimeconfig/README.rst | 4 +- .../google-cloud-runtimeconfig/noxfile.py | 71 +------------------ packages/google-cloud-runtimeconfig/setup.py | 4 +- .../testing/constraints-3.7.txt | 22 ------ .../testing/constraints-3.8.txt | 0 .../testing/constraints-3.9.txt | 9 +++ packages/google-cloud-testutils/noxfile.py | 6 +- packages/google-cloud-testutils/setup.py | 5 +- .../testing/constraints-3.7.txt | 4 -- .../testing/constraints-3.8.txt | 0 .../testing/constraints-3.9.txt | 11 +++ .../tests/unit/resources/bad_package/setup.py | 2 +- .../unit/resources/good_package/setup.py | 2 +- packages/google-resumable-media/README.rst | 9 +-- packages/google-resumable-media/noxfile.py | 2 +- packages/google-resumable-media/setup.py | 4 +- .../testing/constraints-3.7.txt | 4 -- .../testing/constraints-3.8.txt | 0 .../testing/constraints-3.9.txt | 11 +++ 89 files changed, 242 insertions(+), 840 deletions(-) delete mode 100644 packages/bigquery-magics/testing/constraints-3.8.txt delete mode 100644 packages/db-dtypes/testing/constraints-3.8.txt delete mode 100644 packages/google-auth-httplib2/testing/constraints-3.7.txt delete mode 100644 packages/google-auth-httplib2/testing/constraints-3.8.txt delete mode 100644 packages/google-auth-oauthlib/testing/constraints-3.7.txt delete mode 100644 packages/google-auth-oauthlib/testing/constraints-3.8.txt delete mode 100644 packages/google-auth/testing/constraints-3.8.txt delete mode 100644 packages/google-cloud-access-context-manager/testing/constraints-3.7.txt delete mode 100644 packages/google-cloud-access-context-manager/testing/constraints-3.8.txt delete mode 100644 packages/google-cloud-audit-log/testing/constraints-3.7.txt delete mode 100644 packages/google-cloud-audit-log/testing/constraints-3.8.txt delete mode 100644 packages/google-cloud-core/testing/constraints-3.7.txt delete mode 100644 packages/google-cloud-core/testing/constraints-3.8.txt delete mode 100644 packages/google-cloud-dns/testing/constraints-3.7.txt delete mode 100644 packages/google-cloud-dns/testing/constraints-3.8.txt delete mode 100644 packages/google-cloud-documentai-toolbox/testing/constraints-3.8.txt delete mode 100644 packages/google-cloud-ndb/testing/constraints-3.7.txt delete mode 100644 packages/google-cloud-ndb/testing/constraints-3.8.txt delete mode 100644 packages/google-cloud-runtimeconfig/testing/constraints-3.7.txt delete mode 100644 packages/google-cloud-runtimeconfig/testing/constraints-3.8.txt delete mode 100644 packages/google-cloud-testutils/testing/constraints-3.7.txt delete mode 100644 packages/google-cloud-testutils/testing/constraints-3.8.txt delete mode 100644 packages/google-resumable-media/testing/constraints-3.7.txt delete mode 100644 packages/google-resumable-media/testing/constraints-3.8.txt diff --git a/packages/bigquery-magics/CONTRIBUTING.rst b/packages/bigquery-magics/CONTRIBUTING.rst index 60e79bcb3347..e0c91c2b145c 100644 --- a/packages/bigquery-magics/CONTRIBUTING.rst +++ b/packages/bigquery-magics/CONTRIBUTING.rst @@ -177,29 +177,6 @@ Build the docs via: $ nox -s docs -************************* -Samples and code snippets -************************* - -Code samples and snippets live in the `samples/` catalogue. Feel free to -provide more examples, but make sure to write tests for those examples. -Each folder containing example code requires its own `noxfile.py` script -which automates testing. If you decide to create a new folder, you can -base it on the `samples/snippets` folder (providing `noxfile.py` and -the requirements files). - -The tests will run against a real Google Cloud Project, so you should -configure them just like the System Tests. - -- To run sample tests, you can execute:: - - # Run all tests in a folder - $ cd samples/snippets - $ nox -s py-3.8 - - # Run a single sample test - $ cd samples/snippets - $ nox -s py-3.8 -- -k ******************************************** Note About ``README`` as it pertains to PyPI diff --git a/packages/bigquery-magics/mypy.ini b/packages/bigquery-magics/mypy.ini index beaa679a8d2b..a3cb5c292172 100644 --- a/packages/bigquery-magics/mypy.ini +++ b/packages/bigquery-magics/mypy.ini @@ -1,3 +1,3 @@ [mypy] -python_version = 3.8 +python_version = 3.14 namespace_packages = True diff --git a/packages/bigquery-magics/noxfile.py b/packages/bigquery-magics/noxfile.py index de15ac39d556..09fdb93536e2 100644 --- a/packages/bigquery-magics/noxfile.py +++ b/packages/bigquery-magics/noxfile.py @@ -35,7 +35,6 @@ DEFAULT_PYTHON_VERSION = "3.14" UNIT_TEST_PYTHON_VERSIONS: List[str] = [ - "3.8", "3.9", "3.10", "3.11", @@ -44,9 +43,6 @@ "3.14", ] -ALL_PYTHON = list(UNIT_TEST_PYTHON_VERSIONS) -ALL_PYTHON.extend(["3.7"]) - UNIT_TEST_STANDARD_DEPENDENCIES = [ "mock", "asyncmock", @@ -225,36 +221,15 @@ def install_unittest_dependencies(session, *constraints): session.install("-e", ".", *constraints) -@nox.session(python=ALL_PYTHON) -@nox.parametrize( - "protobuf_implementation", - ["python", "upb", "cpp"], -) -def unit(session, protobuf_implementation): +@nox.session(python=UNIT_TEST_PYTHON_VERSIONS) +def unit(session): # Install all test dependencies, then install this package in-place. - if session.python in ("3.7",): - session.skip("Python 3.7 is no longer supported") - - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - constraints_path = str( CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt" ) install_unittest_dependencies(session, "-c", constraints_path) - # TODO(https://github.com/googleapis/synthtool/issues/1976): - # Remove the 'cpp' implementation once support for Protobuf 3.x is dropped. - # The 'cpp' implementation requires Protobuf<4. - if protobuf_implementation == "cpp": - session.install("protobuf<4") - # Run py.test against the unit tests. session.run( "py.test", @@ -268,9 +243,6 @@ def unit(session, protobuf_implementation): "--cov-fail-under=0", os.path.join("tests", "unit"), *session.posargs, - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) @@ -444,21 +416,9 @@ def docfx(session): @nox.session(python=DEFAULT_PYTHON_VERSION) -@nox.parametrize( - "protobuf_implementation", - ["python", "upb", "cpp"], -) -def prerelease_deps(session, protobuf_implementation): +def prerelease_deps(session): """Run all tests with prerelease versions of dependencies installed.""" - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - # Install all dependencies session.install("-e", ".[all, tests, tracing]") unit_deps_all = UNIT_TEST_STANDARD_DEPENDENCIES + UNIT_TEST_EXTERNAL_DEPENDENCIES @@ -536,9 +496,6 @@ def prerelease_deps(session, protobuf_implementation): session.run( "py.test", "tests/unit", - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) system_test_path = os.path.join("tests", "system.py") @@ -558,9 +515,6 @@ def prerelease_deps(session, protobuf_implementation): f"--junitxml=system_{session.python}_sponge_log.xml", system_test_path, *session.posargs, - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) if os.path.exists(system_test_folder_path): session.run( @@ -569,9 +523,6 @@ def prerelease_deps(session, protobuf_implementation): f"--junitxml=system_{session.python}_sponge_log.xml", system_test_folder_path, *session.posargs, - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) diff --git a/packages/bigquery-magics/setup.py b/packages/bigquery-magics/setup.py index fc6de74fbb97..27c496795ad8 100644 --- a/packages/bigquery-magics/setup.py +++ b/packages/bigquery-magics/setup.py @@ -106,7 +106,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -120,7 +119,7 @@ packages=packages, install_requires=dependencies, extras_require=extras, - python_requires=">=3.8", + python_requires=">=3.9", include_package_data=True, zip_safe=False, ) diff --git a/packages/bigquery-magics/testing/constraints-3.8.txt b/packages/bigquery-magics/testing/constraints-3.8.txt deleted file mode 100644 index d85a47c0bb6d..000000000000 --- a/packages/bigquery-magics/testing/constraints-3.8.txt +++ /dev/null @@ -1,17 +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 -db-dtypes==0.3.0 -google-cloud-bigquery==3.13.0 -google-cloud-bigquery-storage==2.6.0 -ipywidgets==7.7.1 -ipython==7.23.1 -ipykernel==5.5.6 -pandas==1.2.0 -pyarrow==3.0.0 -pydata-google-auth==1.5.0 -tqdm==4.7.4 \ No newline at end of file diff --git a/packages/bigquery-magics/testing/constraints-3.9.txt b/packages/bigquery-magics/testing/constraints-3.9.txt index d85a47c0bb6d..5a438d383f74 100644 --- a/packages/bigquery-magics/testing/constraints-3.9.txt +++ b/packages/bigquery-magics/testing/constraints-3.9.txt @@ -11,7 +11,8 @@ google-cloud-bigquery-storage==2.6.0 ipywidgets==7.7.1 ipython==7.23.1 ipykernel==5.5.6 +packaging=20.0.0 pandas==1.2.0 pyarrow==3.0.0 pydata-google-auth==1.5.0 -tqdm==4.7.4 \ No newline at end of file +tqdm==4.7.4 diff --git a/packages/db-dtypes/CONTRIBUTING.rst b/packages/db-dtypes/CONTRIBUTING.rst index a22108f2c7f1..6135934e161e 100644 --- a/packages/db-dtypes/CONTRIBUTING.rst +++ b/packages/db-dtypes/CONTRIBUTING.rst @@ -22,7 +22,7 @@ In order to add a feature: documentation. - The feature must work fully on the following CPython versions: - 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 on both UNIX and Windows. + 3.9, 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 @@ -177,29 +177,6 @@ Build the docs via: $ nox -s docs -************************* -Samples and code snippets -************************* - -Code samples and snippets live in the `samples/` catalogue. Feel free to -provide more examples, but make sure to write tests for those examples. -Each folder containing example code requires its own `noxfile.py` script -which automates testing. If you decide to create a new folder, you can -base it on the `samples/snippets` folder (providing `noxfile.py` and -the requirements files). - -The tests will run against a real Google Cloud Project, so you should -configure them just like the System Tests. - -- To run sample tests, you can execute:: - - # Run all tests in a folder - $ cd samples/snippets - $ nox -s py-3.8 - - # Run a single sample test - $ cd samples/snippets - $ nox -s py-3.8 -- -k ******************************************** Note About ``README`` as it pertains to PyPI @@ -221,8 +198,6 @@ Supported Python Versions We support: -- `Python 3.7`_ -- `Python 3.8`_ - `Python 3.9`_ - `Python 3.10`_ - `Python 3.11`_ @@ -230,8 +205,6 @@ We support: - `Python 3.13`_ - `Python 3.14`_ -.. _Python 3.7: https://docs.python.org/3.7/ -.. _Python 3.8: https://docs.python.org/3.8/ .. _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/ @@ -245,7 +218,7 @@ Supported versions can be found in our ``noxfile.py`` `config`_. .. _config: https://github.com/googleapis/google-cloud-python/blob/main/packages/db-dtypes/noxfile.py -We also explicitly decided to support Python 3 beginning with version 3.7. +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 diff --git a/packages/db-dtypes/noxfile.py b/packages/db-dtypes/noxfile.py index 2780c0950848..c7200dce77f1 100644 --- a/packages/db-dtypes/noxfile.py +++ b/packages/db-dtypes/noxfile.py @@ -36,7 +36,6 @@ LINT_PYTHON_VERSION = "3.10" UNIT_TEST_PYTHON_VERSIONS: List[str] = [ - "3.8", "3.9", "3.10", "3.11", @@ -44,8 +43,6 @@ "3.13", "3.14", ] -ALL_PYTHON = list(UNIT_TEST_PYTHON_VERSIONS) -ALL_PYTHON.extend(["3.7"]) UNIT_TEST_STANDARD_DEPENDENCIES = [ "mock", @@ -111,10 +108,6 @@ def lint(session): session.run("flake8", "db_dtypes", "tests") -# TODO: the owlbot-python docker image still has python 3.8 installed ( -# and only 3.8). -# As soon as that gets upgraded, we should be able to revert this session -# to using the DEFAULT_PYTHON_VERSION. @nox.session(python=DEFAULT_PYTHON_VERSION) def blacken(session): """Run black. Format code to uniform standard.""" @@ -285,12 +278,10 @@ def prerelease(session, tests_path): ) -@nox.session(python=ALL_PYTHON) +@nox.session(python=UNIT_TEST_PYTHON_VERSIONS) @nox.parametrize("test_type", ["unit", "compliance"]) def unit(session, test_type): """Run the unit test suite.""" - if session.python == "3.7": - session.skip("Python 3.7 is no longer supported") # Compliance tests only run on the latest Python version if test_type == "compliance" and session.python != DEFAULT_PYTHON_VERSION: diff --git a/packages/db-dtypes/setup.py b/packages/db-dtypes/setup.py index cbc20182ce6c..20efac6f3aa4 100644 --- a/packages/db-dtypes/setup.py +++ b/packages/db-dtypes/setup.py @@ -64,7 +64,6 @@ def readme(): "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -76,6 +75,6 @@ def readme(): ], platforms="Posix; MacOS X; Windows", install_requires=dependencies, - python_requires=">=3.8", + python_requires=">=3.9", tests_require=["pytest"], ) diff --git a/packages/db-dtypes/testing/constraints-3.8.txt b/packages/db-dtypes/testing/constraints-3.8.txt deleted file mode 100644 index 1019c1cfb616..000000000000 --- a/packages/db-dtypes/testing/constraints-3.8.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Make sure we test with pandas 1.5.3. The Python version isn't that relevant. -numpy==1.24.0 -packaging==24.2.0 -pandas==1.5.3 -pyarrow==13.0.0 diff --git a/packages/db-dtypes/testing/constraints-3.9.txt b/packages/db-dtypes/testing/constraints-3.9.txt index e69de29bb2d1..63898869bb8b 100644 --- a/packages/db-dtypes/testing/constraints-3.9.txt +++ b/packages/db-dtypes/testing/constraints-3.9.txt @@ -0,0 +1,11 @@ +# 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 +numpy==1.24.0 +packaging==24.2.0 +pandas==1.5.3 +pyarrow==13.0.0 diff --git a/packages/google-auth-httplib2/noxfile.py b/packages/google-auth-httplib2/noxfile.py index d5ec98c11a8b..41e4412c6fe8 100644 --- a/packages/google-auth-httplib2/noxfile.py +++ b/packages/google-auth-httplib2/noxfile.py @@ -33,8 +33,6 @@ DEFAULT_PYTHON_VERSION = "3.14" UNIT_TEST_PYTHON_VERSIONS: List[str] = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", diff --git a/packages/google-auth-httplib2/setup.py b/packages/google-auth-httplib2/setup.py index 512a70e438bf..b1effc51c70a 100644 --- a/packages/google-auth-httplib2/setup.py +++ b/packages/google-auth-httplib2/setup.py @@ -36,14 +36,12 @@ long_description=long_description, url="https://github.com/googleapis/google-cloud-python/packages/google-auth-httplib2", py_modules=["google_auth_httplib2"], - python_requires=">=3.7", + python_requires=">=3.9", install_requires=DEPENDENCIES, license="Apache 2.0", keywords="google auth oauth client", classifiers=[ "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", diff --git a/packages/google-auth-httplib2/testing/constraints-3.7.txt b/packages/google-auth-httplib2/testing/constraints-3.7.txt deleted file mode 100644 index 6a8ddb0085d4..000000000000 --- a/packages/google-auth-httplib2/testing/constraints-3.7.txt +++ /dev/null @@ -1,8 +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 "google-cloud-foo >= 1.14.0, < 2.0.0", -# Then this file should have google-cloud-foo==1.14.0 -google-auth==1.32.0 -httplib2==0.19.0 diff --git a/packages/google-auth-httplib2/testing/constraints-3.8.txt b/packages/google-auth-httplib2/testing/constraints-3.8.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/google-auth-httplib2/testing/constraints-3.9.txt b/packages/google-auth-httplib2/testing/constraints-3.9.txt index e69de29bb2d1..bf19f4a6fee0 100644 --- a/packages/google-auth-httplib2/testing/constraints-3.9.txt +++ b/packages/google-auth-httplib2/testing/constraints-3.9.txt @@ -0,0 +1,9 @@ +# 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-auth==1.32.0 +httplib2==0.19.0 diff --git a/packages/google-auth-oauthlib/CONTRIBUTING.rst b/packages/google-auth-oauthlib/CONTRIBUTING.rst index c297b6044f89..b10e2a0bd6b5 100644 --- a/packages/google-auth-oauthlib/CONTRIBUTING.rst +++ b/packages/google-auth-oauthlib/CONTRIBUTING.rst @@ -22,7 +22,7 @@ In order to add a feature: documentation. - The feature must work fully on the following CPython versions: - 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 on both UNIX and Windows. + 3.9, 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 @@ -143,12 +143,12 @@ Running System Tests $ nox -s system # Run a single system test - $ nox -s system-3.8 -- -k + $ nox -s system-3.12 -- -k .. note:: - System tests are only configured to run under Python 3.8. + System tests are only configured to run under Python 3.12. For expediency, we do not run them in older versions of Python 3. This alone will not run the tests. You'll need to change some local @@ -177,30 +177,6 @@ Build the docs via: $ nox -s docs -************************* -Samples and code snippets -************************* - -Code samples and snippets live in the `samples/` catalogue. Feel free to -provide more examples, but make sure to write tests for those examples. -Each folder containing example code requires its own `noxfile.py` script -which automates testing. If you decide to create a new folder, you can -base it on the `samples/snippets` folder (providing `noxfile.py` and -the requirements files). - -The tests will run against a real Google Cloud Project, so you should -configure them just like the System Tests. - -- To run sample tests, you can execute:: - - # Run all tests in a folder - $ cd samples/snippets - $ nox -s py-3.8 - - # Run a single sample test - $ cd samples/snippets - $ nox -s py-3.8 -- -k - ******************************************** Note About ``README`` as it pertains to PyPI ******************************************** @@ -221,8 +197,6 @@ Supported Python Versions We support: -- `Python 3.7`_ -- `Python 3.8`_ - `Python 3.9`_ - `Python 3.10`_ - `Python 3.11`_ @@ -230,8 +204,6 @@ We support: - `Python 3.13`_ - `Python 3.14`_ -.. _Python 3.7: https://docs.python.org/3.7/ -.. _Python 3.8: https://docs.python.org/3.8/ .. _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/ @@ -245,7 +217,7 @@ 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.7. +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 diff --git a/packages/google-auth-oauthlib/README.rst b/packages/google-auth-oauthlib/README.rst index d25d40533e3d..7f43690dbf20 100644 --- a/packages/google-auth-oauthlib/README.rst +++ b/packages/google-auth-oauthlib/README.rst @@ -29,19 +29,14 @@ The latest documentation is available at `google-auth-oauthlib.googleapis.dev`_. Supported Python Versions ------------------------- -Python >= 3.7 +Python >= 3.9 Unsupported Python Versions --------------------------- -Python == 2.7, Python < 3.7. +Python == 2.7, Python <= 3.8. -The last version of this library compatible with Python 2.7 and 3.5 is -`google-auth-oauthlib==0.4.1`. - -The last version of this library compatible with Python 3.6 is -`google-auth-oauthlib==1.2.2`. License ------- diff --git a/packages/google-auth-oauthlib/noxfile.py b/packages/google-auth-oauthlib/noxfile.py index bb75274d9e76..8dea436bf3b0 100644 --- a/packages/google-auth-oauthlib/noxfile.py +++ b/packages/google-auth-oauthlib/noxfile.py @@ -34,11 +34,7 @@ DEFAULT_PYTHON_VERSION = "3.14" -# TODO(https://github.com/googleapis/google-auth-library-python-oauthlib/issues/410): -# Remove or restore testing for Python 3.7/3.8 UNIT_TEST_PYTHON_VERSIONS: List[str] = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", @@ -160,32 +156,14 @@ def install_unittest_dependencies(session, *constraints): @nox.session(python=UNIT_TEST_PYTHON_VERSIONS) -@nox.parametrize( - "protobuf_implementation", - ["python", "upb", "cpp"], -) -def unit(session, protobuf_implementation): +def unit(session): # Install all test dependencies, then install this package in-place. - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - constraints_path = str( CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt" ) install_unittest_dependencies(session, "-c", constraints_path) - # TODO(https://github.com/googleapis/synthtool/issues/1976): - # Remove the 'cpp' implementation once support for Protobuf 3.x is dropped. - # The 'cpp' implementation requires Protobuf<4. - if protobuf_implementation == "cpp": - session.install("protobuf<4") - # Run py.test against the unit tests. session.run( "py.test", @@ -199,9 +177,6 @@ def unit(session, protobuf_implementation): "--cov-fail-under=0", os.path.join("tests", "unit"), *session.posargs, - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) diff --git a/packages/google-auth-oauthlib/setup.py b/packages/google-auth-oauthlib/setup.py index 555a7b262821..5584ba8a842f 100644 --- a/packages/google-auth-oauthlib/setup.py +++ b/packages/google-auth-oauthlib/setup.py @@ -56,13 +56,11 @@ "google-oauthlib-tool" "=google_auth_oauthlib.tool.__main__:main [tool]" ] }, - python_requires=">=3.7", + python_requires=">=3.9", license="Apache 2.0", keywords="google auth oauth client oauthlib", classifiers=[ "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", diff --git a/packages/google-auth-oauthlib/testing/constraints-3.7.txt b/packages/google-auth-oauthlib/testing/constraints-3.7.txt deleted file mode 100644 index ccd76e72df59..000000000000 --- a/packages/google-auth-oauthlib/testing/constraints-3.7.txt +++ /dev/null @@ -1,10 +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-auth==2.15.0 -requests-oauthlib==0.7.0 -click==6.0.0 diff --git a/packages/google-auth-oauthlib/testing/constraints-3.8.txt b/packages/google-auth-oauthlib/testing/constraints-3.8.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/google-auth/CONTRIBUTING.rst b/packages/google-auth/CONTRIBUTING.rst index a186da7d44a1..8212cdfd2ffe 100644 --- a/packages/google-auth/CONTRIBUTING.rst +++ b/packages/google-auth/CONTRIBUTING.rst @@ -19,7 +19,7 @@ A few notes on making changes to ``google-auth-library-python``. using ``nox -s docs``. - The change must work fully on the following CPython versions: - 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 across macOS, Linux, and Windows. + 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 across macOS, Linux, and Windows. - The codebase *must* have 100% test statement coverage after each commit. You can test coverage via ``nox -e cover``. diff --git a/packages/google-auth/README.rst b/packages/google-auth/README.rst index 45da8044ddc7..0523f929fbbc 100644 --- a/packages/google-auth/README.rst +++ b/packages/google-auth/README.rst @@ -35,11 +35,10 @@ Note that the extras pyopenssl and enterprise_cert should not be used together b Supported Python Versions ^^^^^^^^^^^^^^^^^^^^^^^^^ -Python >= 3.8 +Python >= 3.9 **NOTE**: -Python 3.8 and Python 3.9 were marked as `unsupported`_ by the python community in -October 2024 and October 2025, respectively. +Python 3.9 was marked as `unsupported`_ by the python community in October 2025. We recommend that all developers upgrade to Python 3.10 and newer as soon as they can. Support for end-of-life Python runtimes will be removed from this library in future updates. @@ -62,6 +61,9 @@ Unsupported Python Versions - Python 3.7: The last version of this library with support for Python 3.7 was `google.auth == 2.45.0`. +- Python 3.8: The last version of this library with support for Python 3.8 + was `google.auth == 2.49.1`. + Documentation ------------- diff --git a/packages/google-auth/noxfile.py b/packages/google-auth/noxfile.py index ca829fa96030..d06f9625af93 100644 --- a/packages/google-auth/noxfile.py +++ b/packages/google-auth/noxfile.py @@ -33,7 +33,6 @@ DEFAULT_PYTHON_VERSION = "3.14" UNIT_TEST_PYTHON_VERSIONS = [ - "3.8", "3.9", "3.10", "3.11", @@ -41,8 +40,6 @@ "3.13", "3.14", ] -ALL_PYTHON = UNIT_TEST_PYTHON_VERSIONS.copy() -ALL_PYTHON.extend(["3.7"]) # Error if a python version is missing nox.options.error_on_missing_interpreters = True @@ -114,13 +111,11 @@ def mypy(session): session.run("mypy", "-p", "google", "-p", "tests", "-p", "tests_async") -@nox.session(python=ALL_PYTHON) +@nox.session(python=UNIT_TEST_PYTHON_VERSIONS) @nox.parametrize(["install_deprecated_extras"], (True, False)) def unit(session, install_deprecated_extras): # Install all test dependencies, then install this package in-place. - if session.python in ("3.7",): - session.skip("Python 3.7 is no longer supported") min_py, max_py = UNIT_TEST_PYTHON_VERSIONS[0], UNIT_TEST_PYTHON_VERSIONS[-1] if not install_deprecated_extras and session.python not in (min_py, max_py): # only run double tests on first and last supported versions diff --git a/packages/google-auth/setup.py b/packages/google-auth/setup.py index 8a66b7c39d0e..c10d40ef91ff 100644 --- a/packages/google-auth/setup.py +++ b/packages/google-auth/setup.py @@ -112,12 +112,11 @@ package_data={"google.auth": ["py.typed"], "google.oauth2": ["py.typed"]}, install_requires=DEPENDENCIES, extras_require=extras, - python_requires=">=3.8", + python_requires=">=3.9", license="Apache 2.0", keywords="google auth oauth client", classifiers=[ "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", diff --git a/packages/google-auth/testing/constraints-3.8.txt b/packages/google-auth/testing/constraints-3.8.txt deleted file mode 100644 index 3ca0e8edb179..000000000000 --- a/packages/google-auth/testing/constraints-3.8.txt +++ /dev/null @@ -1,13 +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 -pyasn1-modules==0.2.1 -setuptools==40.3.0 -cryptography==38.0.3 -aiohttp==3.6.2 -requests==2.20.0 -pyjwt==2.0 \ No newline at end of file diff --git a/packages/google-auth/testing/constraints-3.9.txt b/packages/google-auth/testing/constraints-3.9.txt index e69de29bb2d1..543a1c88ba76 100644 --- a/packages/google-auth/testing/constraints-3.9.txt +++ b/packages/google-auth/testing/constraints-3.9.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 +pyasn1-modules==0.2.1 +cryptography==38.0.3 +aiohttp==3.6.2 +requests==2.20.0 +pyjwt==2.0 diff --git a/packages/google-cloud-access-context-manager/README.rst b/packages/google-cloud-access-context-manager/README.rst index 5fa525df1a41..2d820cad6eb9 100644 --- a/packages/google-cloud-access-context-manager/README.rst +++ b/packages/google-cloud-access-context-manager/README.rst @@ -61,14 +61,14 @@ Supported Python Versions Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of Python. -Python >= 3.7, including 3.14 +Python >= 3.9, including 3.14 .. _active: https://devguide.python.org/devcycle/#in-development-main-branch .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches Unsupported Python Versions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Python <= 3.6 +Python <= 3.8 If you are using an `end-of-life`_ version of Python, we recommend that you update as soon as possible to an actively supported version. diff --git a/packages/google-cloud-access-context-manager/docs/README.rst b/packages/google-cloud-access-context-manager/docs/README.rst index 5fa525df1a41..2d820cad6eb9 100644 --- a/packages/google-cloud-access-context-manager/docs/README.rst +++ b/packages/google-cloud-access-context-manager/docs/README.rst @@ -61,14 +61,14 @@ Supported Python Versions Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of Python. -Python >= 3.7, including 3.14 +Python >= 3.9, including 3.14 .. _active: https://devguide.python.org/devcycle/#in-development-main-branch .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches Unsupported Python Versions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Python <= 3.6 +Python <= 3.8 If you are using an `end-of-life`_ version of Python, we recommend that you update as soon as possible to an actively supported version. diff --git a/packages/google-cloud-access-context-manager/noxfile.py b/packages/google-cloud-access-context-manager/noxfile.py index 9b142b85c34e..30a8397c6df4 100644 --- a/packages/google-cloud-access-context-manager/noxfile.py +++ b/packages/google-cloud-access-context-manager/noxfile.py @@ -32,8 +32,6 @@ LINT_PATHS = ["docs", "google", "tests", "noxfile.py", "setup.py"] UNIT_TEST_PYTHON_VERSIONS: List[str] = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", @@ -58,7 +56,6 @@ UNIT_TEST_EXTRAS_BY_PYTHON: Dict[str, List[str]] = {} SYSTEM_TEST_PYTHON_VERSIONS: List[str] = [ - "3.8", "3.9", "3.10", "3.11", @@ -213,30 +210,16 @@ def install_unittest_dependencies(session, *constraints): @nox.session(python=UNIT_TEST_PYTHON_VERSIONS) @nox.parametrize( "protobuf_implementation", - ["python", "upb", "cpp"], + ["python", "upb"], ) def unit(session, protobuf_implementation): # Install all test dependencies, then install this package in-place. - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - constraints_path = str( CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt" ) install_unittest_dependencies(session, "-c", constraints_path) - # TODO(https://github.com/googleapis/synthtool/issues/1976): - # Remove the 'cpp' implementation once support for Protobuf 3.x is dropped. - # The 'cpp' implementation requires Protobuf<4. - if protobuf_implementation == "cpp": - session.install("protobuf<4") - # Run py.test against the unit tests. session.run( "py.test", @@ -426,7 +409,7 @@ def docfx(session): @nox.session(python=DEFAULT_PYTHON_VERSION) @nox.parametrize( "protobuf_implementation", - ["python", "upb", "cpp"], + ["python", "upb"], ) def prerelease_deps(session, protobuf_implementation): """ @@ -436,14 +419,6 @@ def prerelease_deps(session, protobuf_implementation): `pip install --pre `. """ - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - # Install all dependencies session.install("-e", ".") diff --git a/packages/google-cloud-access-context-manager/setup.py b/packages/google-cloud-access-context-manager/setup.py index 9155d74c3663..83c7c8f9cc15 100644 --- a/packages/google-cloud-access-context-manager/setup.py +++ b/packages/google-cloud-access-context-manager/setup.py @@ -30,7 +30,7 @@ release_status = "Development Status :: 4 - Beta" dependencies = [ "google-api-core[grpc] >= 1.34.1, <3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", - "protobuf>=3.20.2,<7.0.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "protobuf >= 4.25.8, < 8.0.0", ] # Setup boilerplate below this line. @@ -55,8 +55,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -69,7 +67,7 @@ platforms="Posix; MacOS X; Windows", packages=find_namespace_packages(exclude=("tests*", "testing*")), install_requires=dependencies, - python_requires=">=3.7", + python_requires=">=3.9", include_package_data=True, zip_safe=False, ) diff --git a/packages/google-cloud-access-context-manager/testing/constraints-3.7.txt b/packages/google-cloud-access-context-manager/testing/constraints-3.7.txt deleted file mode 100644 index 5dccad8acbae..000000000000 --- a/packages/google-cloud-access-context-manager/testing/constraints-3.7.txt +++ /dev/null @@ -1,9 +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 -protobuf==3.20.2 -google-api-core==1.34.1 diff --git a/packages/google-cloud-access-context-manager/testing/constraints-3.8.txt b/packages/google-cloud-access-context-manager/testing/constraints-3.8.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/google-cloud-access-context-manager/testing/constraints-3.9.txt b/packages/google-cloud-access-context-manager/testing/constraints-3.9.txt index e69de29bb2d1..77a4fa0c279a 100644 --- a/packages/google-cloud-access-context-manager/testing/constraints-3.9.txt +++ b/packages/google-cloud-access-context-manager/testing/constraints-3.9.txt @@ -0,0 +1,9 @@ +# 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 +protobuf==4.25.8 +google-api-core==1.34.1 diff --git a/packages/google-cloud-audit-log/README.rst b/packages/google-cloud-audit-log/README.rst index 0295aa2a2889..e76306703a1e 100644 --- a/packages/google-cloud-audit-log/README.rst +++ b/packages/google-cloud-audit-log/README.rst @@ -61,14 +61,14 @@ Supported Python Versions Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of Python. -Python >= 3.7, including 3.14 +Python >= 3.9, including 3.14 .. _active: https://devguide.python.org/devcycle/#in-development-main-branch .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches Unsupported Python Versions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Python <= 3.6 +Python <= 3.8 If you are using an `end-of-life`_ version of Python, we recommend that you update as soon as possible to an actively supported version. diff --git a/packages/google-cloud-audit-log/docs/README.rst b/packages/google-cloud-audit-log/docs/README.rst index 0295aa2a2889..e76306703a1e 100644 --- a/packages/google-cloud-audit-log/docs/README.rst +++ b/packages/google-cloud-audit-log/docs/README.rst @@ -61,14 +61,14 @@ Supported Python Versions Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of Python. -Python >= 3.7, including 3.14 +Python >= 3.9, including 3.14 .. _active: https://devguide.python.org/devcycle/#in-development-main-branch .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches Unsupported Python Versions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Python <= 3.6 +Python <= 3.8 If you are using an `end-of-life`_ version of Python, we recommend that you update as soon as possible to an actively supported version. diff --git a/packages/google-cloud-audit-log/noxfile.py b/packages/google-cloud-audit-log/noxfile.py index 73905f52773d..6557c9ab5a80 100644 --- a/packages/google-cloud-audit-log/noxfile.py +++ b/packages/google-cloud-audit-log/noxfile.py @@ -32,8 +32,6 @@ LINT_PATHS = ["docs", "google", "tests", "noxfile.py", "setup.py"] UNIT_TEST_PYTHON_VERSIONS: List[str] = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", @@ -58,7 +56,6 @@ UNIT_TEST_EXTRAS_BY_PYTHON: Dict[str, List[str]] = {} SYSTEM_TEST_PYTHON_VERSIONS: List[str] = [ - "3.8", "3.9", "3.10", "3.11", @@ -213,30 +210,16 @@ def install_unittest_dependencies(session, *constraints): @nox.session(python=UNIT_TEST_PYTHON_VERSIONS) @nox.parametrize( "protobuf_implementation", - ["python", "upb", "cpp"], + ["python", "upb"], ) def unit(session, protobuf_implementation): # Install all test dependencies, then install this package in-place. - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - constraints_path = str( CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt" ) install_unittest_dependencies(session, "-c", constraints_path) - # TODO(https://github.com/googleapis/synthtool/issues/1976): - # Remove the 'cpp' implementation once support for Protobuf 3.x is dropped. - # The 'cpp' implementation requires Protobuf<4. - if protobuf_implementation == "cpp": - session.install("protobuf<4") - # Run py.test against the unit tests. session.run( "py.test", @@ -426,7 +409,7 @@ def docfx(session): @nox.session(python=DEFAULT_PYTHON_VERSION) @nox.parametrize( "protobuf_implementation", - ["python", "upb", "cpp"], + ["python", "upb"], ) def prerelease_deps(session, protobuf_implementation): """ @@ -436,14 +419,6 @@ def prerelease_deps(session, protobuf_implementation): `pip install --pre `. """ - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - # Install all dependencies session.install("-e", ".") diff --git a/packages/google-cloud-audit-log/setup.py b/packages/google-cloud-audit-log/setup.py index df3753a9509e..55f9e1401f1f 100644 --- a/packages/google-cloud-audit-log/setup.py +++ b/packages/google-cloud-audit-log/setup.py @@ -23,7 +23,7 @@ version = "0.4.0" release_status = "Development Status :: 4 - Beta" dependencies = [ - "protobuf>=3.20.2,<7.0.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "protobuf >= 4.25.8, < 8.0.0", "googleapis-common-protos >= 1.56.2, < 2.0.0", ] @@ -45,8 +45,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -61,7 +59,7 @@ install_requires=dependencies, license="Apache-2.0", packages=find_namespace_packages(exclude=("tests*", "testing*")), - python_requires=">=3.7", + python_requires=">=3.9", url="https://github.com/googleapis/python-audit-log", include_package_data=True, ) diff --git a/packages/google-cloud-audit-log/testing/constraints-3.7.txt b/packages/google-cloud-audit-log/testing/constraints-3.7.txt deleted file mode 100644 index 815739a17b8a..000000000000 --- a/packages/google-cloud-audit-log/testing/constraints-3.7.txt +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# 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 "google-cloud-foo >= 1.14.0, < 2.0.0dev", -# Then this file should have google-cloud-foo==1.14.0 -protobuf==3.20.2 -googleapis-common-protos==1.56.2 diff --git a/packages/google-cloud-audit-log/testing/constraints-3.8.txt b/packages/google-cloud-audit-log/testing/constraints-3.8.txt deleted file mode 100644 index 6d5e14bcf4a0..000000000000 --- a/packages/google-cloud-audit-log/testing/constraints-3.8.txt +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/packages/google-cloud-audit-log/testing/constraints-3.9.txt b/packages/google-cloud-audit-log/testing/constraints-3.9.txt index 6d5e14bcf4a0..055530426878 100644 --- a/packages/google-cloud-audit-log/testing/constraints-3.9.txt +++ b/packages/google-cloud-audit-log/testing/constraints-3.9.txt @@ -11,3 +11,25 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# 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 "google-cloud-foo >= 1.14.0, < 2.0.0dev", +# Then this file should have google-cloud-foo==1.14.0 +protobuf==4.25.8 +googleapis-common-protos==1.56.2 diff --git a/packages/google-cloud-core/CONTRIBUTING.rst b/packages/google-cloud-core/CONTRIBUTING.rst index 47928d459513..7295bcacf2a2 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.8, 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 on both UNIX and Windows. + 3.9, 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 @@ -143,12 +143,12 @@ Running System Tests $ nox -s system # Run a single system test - $ nox -s system-3.8 -- -k + $ nox -s system-3.12 -- -k .. note:: - System tests are only configured to run under Python 3.8. + System tests are only configured to run under Python 3.12. For expediency, we do not run them in older versions of Python 3. This alone will not run the tests. You'll need to change some local @@ -177,30 +177,6 @@ Build the docs via: $ nox -s docs -************************* -Samples and code snippets -************************* - -Code samples and snippets live in the `samples/` catalogue. Feel free to -provide more examples, but make sure to write tests for those examples. -Each folder containing example code requires its own `noxfile.py` script -which automates testing. If you decide to create a new folder, you can -base it on the `samples/snippets` folder (providing `noxfile.py` and -the requirements files). - -The tests will run against a real Google Cloud Project, so you should -configure them just like the System Tests. - -- To run sample tests, you can execute:: - - # Run all tests in a folder - $ cd samples/snippets - $ nox -s py-3.8 - - # Run a single sample test - $ cd samples/snippets - $ nox -s py-3.8 -- -k - ******************************************** Note About ``README`` as it pertains to PyPI ******************************************** @@ -221,7 +197,6 @@ Supported Python Versions We support: -- `Python 3.8`_ - `Python 3.9`_ - `Python 3.10`_ - `Python 3.11`_ @@ -229,7 +204,6 @@ We support: - `Python 3.13`_ - `Python 3.14`_ -.. _Python 3.8: https://docs.python.org/3.8/ .. _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/ @@ -243,7 +217,7 @@ 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.8. +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 diff --git a/packages/google-cloud-core/README.rst b/packages/google-cloud-core/README.rst index 4a3b2b3c50aa..bfd89a74e64c 100644 --- a/packages/google-cloud-core/README.rst +++ b/packages/google-cloud-core/README.rst @@ -32,12 +32,9 @@ to `Python Development Environment Setup Guide`_ for Google Cloud Platform. Supported Python Versions ------------------------- -Python >= 3.7 +Python >= 3.9 Unsupported Python Versions --------------------------- -Python == 2.7: the last version of this library which supported Python 2.7 -is ``google.cloud.core 1.7.2``. -Python == 3.6: the last version of this library which supported Python 3.6 -is ``google.cloud.core 2.3.1``. +Python <= 3.8 diff --git a/packages/google-cloud-core/noxfile.py b/packages/google-cloud-core/noxfile.py index 2963a82d6e0f..fbd95c7b33dd 100644 --- a/packages/google-cloud-core/noxfile.py +++ b/packages/google-cloud-core/noxfile.py @@ -25,8 +25,6 @@ DEFAULT_PYTHON_VERSION = "3.14" UNIT_TEST_PYTHON_VERSIONS = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", @@ -222,19 +220,11 @@ def docfx(session): @nox.session(python=DEFAULT_PYTHON_VERSION) @nox.parametrize( "protobuf_implementation", - ["python", "upb", "cpp"], + ["python", "upb"], ) def prerelease_deps(session, protobuf_implementation): """Run all tests with prerelease versions of dependencies installed.""" - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - # Install all test dependencies, then install local packages in-place. session.install("pytest", "pytest-cov") session.install("-e", ".[grpc]") @@ -315,21 +305,13 @@ def prerelease_deps(session, protobuf_implementation): @nox.session(python=DEFAULT_PYTHON_VERSION) @nox.parametrize( "protobuf_implementation", - ["python", "upb", "cpp"], + ["python", "upb"], ) def core_deps_from_source(session, protobuf_implementation): """Run all tests with core dependencies installed from source rather than pulling the dependencies from PyPI. """ - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - # Install all test dependencies, then install local packages in-place. session.install("pytest", "pytest-cov") session.install("-e", ".[grpc]") diff --git a/packages/google-cloud-core/setup.py b/packages/google-cloud-core/setup.py index e51ec91eba0e..496b66017340 100644 --- a/packages/google-cloud-core/setup.py +++ b/packages/google-cloud-core/setup.py @@ -30,7 +30,6 @@ dependencies = [ "google-api-core >= 1.31.6, <3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0", "google-auth >= 1.25.0, < 3.0.0", - "importlib-metadata > 1.0.0; python_version<'3.8'", ] extras = { "grpc": [ @@ -76,8 +75,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -91,7 +88,7 @@ packages=packages, install_requires=dependencies, extras_require=extras, - python_requires=">=3.7", + python_requires=">=3.9", include_package_data=True, zip_safe=False, ) diff --git a/packages/google-cloud-core/testing/constraints-3.7.txt b/packages/google-cloud-core/testing/constraints-3.7.txt deleted file mode 100644 index 33bd1ef2111d..000000000000 --- a/packages/google-cloud-core/testing/constraints-3.7.txt +++ /dev/null @@ -1,14 +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==1.31.6 -google-auth==1.25.0 -grpcio==1.38.0 -# cryptography is a direct dependency of google-auth -cryptography==38.0.3 -# required for Python 3.7 only -importlib-metadata==1.1.0 diff --git a/packages/google-cloud-core/testing/constraints-3.8.txt b/packages/google-cloud-core/testing/constraints-3.8.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/google-cloud-core/testing/constraints-3.9.txt b/packages/google-cloud-core/testing/constraints-3.9.txt index e69de29bb2d1..e3e6187664a7 100644 --- a/packages/google-cloud-core/testing/constraints-3.9.txt +++ b/packages/google-cloud-core/testing/constraints-3.9.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==1.31.6 +google-auth==1.25.0 +grpcio==1.38.0 +# cryptography is a direct dependency of google-auth +cryptography==38.0.3 diff --git a/packages/google-cloud-dns/CONTRIBUTING.rst b/packages/google-cloud-dns/CONTRIBUTING.rst index e3100d7f64aa..f0961ac7e469 100644 --- a/packages/google-cloud-dns/CONTRIBUTING.rst +++ b/packages/google-cloud-dns/CONTRIBUTING.rst @@ -22,7 +22,7 @@ In order to add a feature: documentation. - The feature must work fully on the following CPython versions: - 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 on both UNIX and Windows. + 3.9, 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 @@ -177,30 +177,6 @@ Build the docs via: $ nox -s docs -************************* -Samples and code snippets -************************* - -Code samples and snippets live in the `samples/` catalogue. Feel free to -provide more examples, but make sure to write tests for those examples. -Each folder containing example code requires its own `noxfile.py` script -which automates testing. If you decide to create a new folder, you can -base it on the `samples/snippets` folder (providing `noxfile.py` and -the requirements files). - -The tests will run against a real Google Cloud Project, so you should -configure them just like the System Tests. - -- To run sample tests, you can execute:: - - # Run all tests in a folder - $ cd samples/snippets - $ nox -s py-3.8 - - # Run a single sample test - $ cd samples/snippets - $ nox -s py-3.8 -- -k - ******************************************** Note About ``README`` as it pertains to PyPI ******************************************** @@ -221,8 +197,6 @@ Supported Python Versions We support: -- `Python 3.7`_ -- `Python 3.8`_ - `Python 3.9`_ - `Python 3.10`_ - `Python 3.11`_ @@ -230,8 +204,6 @@ We support: - `Python 3.13`_ - `Python 3.14`_ -.. _Python 3.7: https://docs.python.org/3.7/ -.. _Python 3.8: https://docs.python.org/3.8/ .. _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/ @@ -245,7 +217,7 @@ 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.7. +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 diff --git a/packages/google-cloud-dns/README.rst b/packages/google-cloud-dns/README.rst index 2ae52b159ad2..ca28886a43d7 100644 --- a/packages/google-cloud-dns/README.rst +++ b/packages/google-cloud-dns/README.rst @@ -60,14 +60,14 @@ Supported Python Versions Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of Python. -Python >= 3.7 +Python >= 3.9 .. _active: https://devguide.python.org/devcycle/#in-development-main-branch .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches Unsupported Python Versions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Python <= 3.6 +Python <= 3.8 If you are using an `end-of-life`_ version of Python, we recommend that you update as soon as possible to an actively supported version. diff --git a/packages/google-cloud-dns/noxfile.py b/packages/google-cloud-dns/noxfile.py index 0dd8aa002d54..04426bb57618 100644 --- a/packages/google-cloud-dns/noxfile.py +++ b/packages/google-cloud-dns/noxfile.py @@ -35,8 +35,6 @@ DEFAULT_PYTHON_VERSION = "3.14" ALL_PYTHON: List[str] = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", @@ -144,7 +142,6 @@ def mypy(session): # TODO(https://github.com/googleapis/gapic-generator-python/issues/2410): Use the latest version of mypy "mypy<1.16.0", "types-requests", - "types-protobuf", ) session.install(".") session.run( @@ -190,32 +187,14 @@ def install_unittest_dependencies(session, *constraints): @nox.session(python=ALL_PYTHON) -@nox.parametrize( - "protobuf_implementation", - ["python", "upb", "cpp"], -) -def unit(session, protobuf_implementation): +def unit(session): # Install all test dependencies, then install this package in-place. - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - constraints_path = str( CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt" ) install_unittest_dependencies(session, "-c", constraints_path) - # TODO(https://github.com/googleapis/synthtool/issues/1976): - # Remove the 'cpp' implementation once support for Protobuf 3.x is dropped. - # The 'cpp' implementation requires Protobuf<4. - if protobuf_implementation == "cpp": - session.install("protobuf<4") - # Run py.test against the unit tests. session.run( "py.test", @@ -229,9 +208,6 @@ def unit(session, protobuf_implementation): "--cov-fail-under=0", os.path.join("tests", "unit"), *session.posargs, - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) @@ -398,21 +374,9 @@ def docfx(session): @nox.session(python=DEFAULT_PYTHON_VERSION) -@nox.parametrize( - "protobuf_implementation", - ["python", "upb", "cpp"], -) -def prerelease_deps(session, protobuf_implementation): +def prerelease_deps(session): """Run all tests with prerelease versions of dependencies installed.""" - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - # Install all dependencies session.install("-e", ".[all, tests, tracing]") unit_deps_all = UNIT_TEST_STANDARD_DEPENDENCIES + UNIT_TEST_EXTERNAL_DEPENDENCIES @@ -474,29 +438,14 @@ def prerelease_deps(session, protobuf_implementation): session.run( "py.test", "tests/unit", - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) @nox.session(python=DEFAULT_PYTHON_VERSION) -@nox.parametrize( - "protobuf_implementation", - ["python", "upb", "cpp"], -) -def core_deps_from_source(session, protobuf_implementation): +def core_deps_from_source(session): """Run all tests with core dependencies installed from source rather than pulling the dependencies from PyPI.""" - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - # Install all dependencies session.install("-e", ".[all, tests, tracing]") unit_deps_all = UNIT_TEST_STANDARD_DEPENDENCIES + UNIT_TEST_EXTERNAL_DEPENDENCIES @@ -552,7 +501,4 @@ def core_deps_from_source(session, protobuf_implementation): session.run( "py.test", "tests/unit", - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) diff --git a/packages/google-cloud-dns/setup.py b/packages/google-cloud-dns/setup.py index 64454d4e78b1..2e95c50fa9c5 100644 --- a/packages/google-cloud-dns/setup.py +++ b/packages/google-cloud-dns/setup.py @@ -77,8 +77,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -92,7 +90,7 @@ packages=packages, install_requires=dependencies, extras_require=extras, - python_requires=">=3.7", + python_requires=">=3.9", include_package_data=True, zip_safe=False, ) diff --git a/packages/google-cloud-dns/testing/constraints-3.7.txt b/packages/google-cloud-dns/testing/constraints-3.7.txt deleted file mode 100644 index 327aaf29bca7..000000000000 --- a/packages/google-cloud-dns/testing/constraints-3.7.txt +++ /dev/null @@ -1,8 +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-cloud-core==1.4.4 diff --git a/packages/google-cloud-dns/testing/constraints-3.8.txt b/packages/google-cloud-dns/testing/constraints-3.8.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/google-cloud-dns/testing/constraints-3.9.txt b/packages/google-cloud-dns/testing/constraints-3.9.txt index e69de29bb2d1..327aaf29bca7 100644 --- a/packages/google-cloud-dns/testing/constraints-3.9.txt +++ b/packages/google-cloud-dns/testing/constraints-3.9.txt @@ -0,0 +1,8 @@ +# 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-cloud-core==1.4.4 diff --git a/packages/google-cloud-documentai-toolbox/CONTRIBUTING.rst b/packages/google-cloud-documentai-toolbox/CONTRIBUTING.rst index 17df78c286d6..96ef5f655ca1 100644 --- a/packages/google-cloud-documentai-toolbox/CONTRIBUTING.rst +++ b/packages/google-cloud-documentai-toolbox/CONTRIBUTING.rst @@ -22,7 +22,7 @@ In order to add a feature: documentation. - The feature must work fully on the following CPython versions: - 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 on both UNIX and Windows. + 3.9, 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 @@ -177,30 +177,6 @@ Build the docs via: $ nox -s docs -************************* -Samples and code snippets -************************* - -Code samples and snippets live in the `samples/` catalogue. Feel free to -provide more examples, but make sure to write tests for those examples. -Each folder containing example code requires its own `noxfile.py` script -which automates testing. If you decide to create a new folder, you can -base it on the `samples/snippets` folder (providing `noxfile.py` and -the requirements files). - -The tests will run against a real Google Cloud Project, so you should -configure them just like the System Tests. - -- To run sample tests, you can execute:: - - # Run all tests in a folder - $ cd samples/snippets - $ nox -s py-3.8 - - # Run a single sample test - $ cd samples/snippets - $ nox -s py-3.8 -- -k - ******************************************** Note About ``README`` as it pertains to PyPI ******************************************** @@ -221,7 +197,6 @@ Supported Python Versions We support: -- `Python 3.8`_ - `Python 3.9`_ - `Python 3.10`_ - `Python 3.11`_ @@ -229,7 +204,6 @@ We support: - `Python 3.13`_ - `Python 3.14`_ -.. _Python 3.8: https://docs.python.org/3.8/ .. _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/ @@ -243,7 +217,7 @@ Supported versions can be found in our ``noxfile.py`` `config`_. .. _config: https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai-toolbox/noxfile.py -We also explicitly decided to support Python 3 beginning with version 3.8. +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 diff --git a/packages/google-cloud-documentai-toolbox/README.rst b/packages/google-cloud-documentai-toolbox/README.rst index 82ec10da9a33..8ea93c665413 100644 --- a/packages/google-cloud-documentai-toolbox/README.rst +++ b/packages/google-cloud-documentai-toolbox/README.rst @@ -63,24 +63,14 @@ Supported Python Versions Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of Python. -Python >= 3.8 +Python >= 3.9 .. _active: https://devguide.python.org/devcycle/#in-development-main-branch .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches Unsupported Python Versions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Python <= 3.7 - -**NOTE**: -Python 3.7 was marked as `unsupported`_ by the python community in June 2023. -We recommend that all developers upgrade to Python 3.8 and newer as soon as -they can. Support for Python 3.7 will be removed from all client libraries after -January 1 2024. Client libraries that support Python 3.7 will continue to be available -for download, but releases after January 1 2024 will only target Python 3.8 and -newer. - -.. _unsupported: https://devguide.python.org/versions/#unsupported-versions +Python <= 3.8 If you are using an `end-of-life`_ version of Python, we recommend that you update as soon as possible to an actively supported version. diff --git a/packages/google-cloud-documentai-toolbox/noxfile.py b/packages/google-cloud-documentai-toolbox/noxfile.py index 9d09dd285d34..4d9415cb22e7 100644 --- a/packages/google-cloud-documentai-toolbox/noxfile.py +++ b/packages/google-cloud-documentai-toolbox/noxfile.py @@ -35,7 +35,6 @@ DEFAULT_PYTHON_VERSION = "3.14" UNIT_TEST_PYTHON_VERSIONS: List[str] = [ - "3.8", "3.9", "3.10", "3.11", @@ -43,8 +42,7 @@ "3.13", "3.14", ] -ALL_PYTHON = UNIT_TEST_PYTHON_VERSIONS -ALL_PYTHON.extend(["3.7"]) + UNIT_TEST_STANDARD_DEPENDENCIES = [ "mock", "asyncmock", @@ -174,36 +172,19 @@ def install_unittest_dependencies(session, *constraints): session.install("-e", ".", *constraints) -@nox.session(python=ALL_PYTHON) +@nox.session(python=UNIT_TEST_PYTHON_VERSIONS) @nox.parametrize( "protobuf_implementation", - ["python", "upb", "cpp"], + ["python", "upb"], ) def unit(session, protobuf_implementation): # Install all test dependencies, then install this package in-place. - if session.python in ("3.7",): - session.skip("Python 3.7 is no longer supported") - - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - constraints_path = str( CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt" ) install_unittest_dependencies(session, "-c", constraints_path) - # TODO(https://github.com/googleapis/synthtool/issues/1976): - # Remove the 'cpp' implementation once support for Protobuf 3.x is dropped. - # The 'cpp' implementation requires Protobuf<4. - if protobuf_implementation == "cpp": - session.install("protobuf<4") - # Run py.test against the unit tests. session.run( "py.test", @@ -393,19 +374,11 @@ def docfx(session): @nox.session(python=DEFAULT_PYTHON_VERSION) @nox.parametrize( "protobuf_implementation", - ["python", "upb", "cpp"], + ["python", "upb"], ) def prerelease_deps(session, protobuf_implementation): """Run all tests with prerelease versions of dependencies installed.""" - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - # Install all dependencies session.install("-e", ".[all, tests, tracing]") unit_deps_all = UNIT_TEST_STANDARD_DEPENDENCIES + UNIT_TEST_EXTERNAL_DEPENDENCIES diff --git a/packages/google-cloud-documentai-toolbox/setup.py b/packages/google-cloud-documentai-toolbox/setup.py index 19f7fc665c92..a282be7a01b5 100644 --- a/packages/google-cloud-documentai-toolbox/setup.py +++ b/packages/google-cloud-documentai-toolbox/setup.py @@ -71,12 +71,11 @@ "Pillow>=10.0.0, <12.0.0", "Jinja2>=3.1.0, <4.0.0", ), - python_requires=">=3.8", + python_requires=">=3.9", classifiers=[ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Operating System :: OS Independent", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", diff --git a/packages/google-cloud-documentai-toolbox/testing/constraints-3.8.txt b/packages/google-cloud-documentai-toolbox/testing/constraints-3.8.txt deleted file mode 100644 index d58f0c586790..000000000000 --- a/packages/google-cloud-documentai-toolbox/testing/constraints-3.8.txt +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- -# 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 "google-cloud-foo >= 1.14.0, < 2.0.0dev", -# Then this file should have google-cloud-foo==1.14.0 -google-api-core==2.15.0 -pandas==2.0.0 -proto-plus==1.22.3 -grpc-google-iam-v1==0.12.6 -google-cloud-bigquery==3.5.0 -google-cloud-documentai==2.29.2 -google-cloud-storage==2.7.0 -pandas-gbq==0.21.0 -numpy==1.23.5 -pikepdf==8.2.3 diff --git a/packages/google-cloud-documentai-toolbox/testing/constraints-3.9.txt b/packages/google-cloud-documentai-toolbox/testing/constraints-3.9.txt index f02a2e2ce916..d58f0c586790 100644 --- a/packages/google-cloud-documentai-toolbox/testing/constraints-3.9.txt +++ b/packages/google-cloud-documentai-toolbox/testing/constraints-3.9.txt @@ -1,13 +1,17 @@ # -*- coding: utf-8 -*- -# This constraints file is required for unit tests. +# This constraints file is used to check that lower bounds +# are correct in setup.py # List all library dependencies and extras in this file. -google-api-core -pandas -pyarrow -proto-plus -grpc-google-iam-v1 -google-cloud-bigquery -google-cloud-documentai -google-cloud-storage -numpy -pikepdf +# Pin the version to the lower bound. +# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0dev", +# Then this file should have google-cloud-foo==1.14.0 +google-api-core==2.15.0 +pandas==2.0.0 +proto-plus==1.22.3 +grpc-google-iam-v1==0.12.6 +google-cloud-bigquery==3.5.0 +google-cloud-documentai==2.29.2 +google-cloud-storage==2.7.0 +pandas-gbq==0.21.0 +numpy==1.23.5 +pikepdf==8.2.3 diff --git a/packages/google-cloud-ndb/CONTRIBUTING.rst b/packages/google-cloud-ndb/CONTRIBUTING.rst index dea4e8b4ac3f..70fdbee2dce1 100644 --- a/packages/google-cloud-ndb/CONTRIBUTING.rst +++ b/packages/google-cloud-ndb/CONTRIBUTING.rst @@ -24,7 +24,7 @@ In order to add a feature to ``python-ndb``: documentation (in ``docs/``). - The feature must work fully on the following CPython versions: - 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 on both UNIX and Windows. + 3.9, 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 @@ -72,8 +72,7 @@ We use `nox `__ to instrument our tests. - To test your changes, run unit tests with ``nox``:: - $ nox -s unit-3.10 - $ nox -s unit-3.7 + $ nox -s unit-3.14 $ ... .. nox: https://pypi.org/project/nox-automation/ @@ -260,8 +259,6 @@ Supported Python Versions We support: -- `Python 3.7`_ -- `Python 3.8`_ - `Python 3.9`_ - `Python 3.10`_ - `Python 3.11`_ @@ -269,8 +266,6 @@ We support: - `Python 3.13`_ - `Python 3.14`_ -.. _Python 3.7: https://docs.python.org/3.7/ -.. _Python 3.8: https://docs.python.org/3.8/ .. _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/ diff --git a/packages/google-cloud-ndb/README.md b/packages/google-cloud-ndb/README.md index af41ed1e84bf..8b03966c8dad 100644 --- a/packages/google-cloud-ndb/README.md +++ b/packages/google-cloud-ndb/README.md @@ -30,14 +30,14 @@ GA Our client libraries are compatible with all current [active][3] and [maintenance][4] versions of Python. -Python >= 3.7 +Python >= 3.9 [3]: https://devguide.python.org/devcycle/#in-development-main-branch [4]: https://devguide.python.org/devcycle/#maintenance-branches ### Unsupported Python Versions -Python <= 3.6 +Python <= 3.8 If you are using an [end-of-life][5] version of Python, we recommend that you update as soon as possible to an actively supported version. diff --git a/packages/google-cloud-ndb/noxfile.py b/packages/google-cloud-ndb/noxfile.py index 91c86532db60..b457368bb75f 100644 --- a/packages/google-cloud-ndb/noxfile.py +++ b/packages/google-cloud-ndb/noxfile.py @@ -29,8 +29,7 @@ LOCAL_DEPS = ("google-api-core", "google-cloud-core") NOX_DIR = os.path.abspath(os.path.dirname(__file__)) DEFAULT_INTERPRETER = "3.14" -ALL_INTERPRETERS = ("3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14") -EMULTATOR_INTERPRETERS = ("3.9", "3.10", "3.11", "3.12", "3.13", "3.14") +ALL_INTERPRETERS = ("3.9", "3.10", "3.11", "3.12", "3.13", "3.14") CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute() BLACK_VERSION = "black[jupyter]==23.7.0" @@ -100,19 +99,11 @@ def default(session): @nox.session(python=DEFAULT_INTERPRETER) @nox.parametrize( "protobuf_implementation", - ["python", "upb", "cpp"], + ["python", "upb"], ) def prerelease_deps(session, protobuf_implementation): """Run all tests with prerelease versions of dependencies installed.""" - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - # Install all dependencies session.install("-e", ".[all, tests, tracing]") unit_deps_all = UNIT_TEST_STANDARD_DEPENDENCIES diff --git a/packages/google-cloud-ndb/setup.py b/packages/google-cloud-ndb/setup.py index 78ebb8072e3a..1229a071eeb1 100644 --- a/packages/google-cloud-ndb/setup.py +++ b/packages/google-cloud-ndb/setup.py @@ -42,7 +42,7 @@ def main(): dependencies = [ "google-api-core[grpc] >= 1.34.0, < 3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", "google-cloud-datastore >= 2.16.0, != 2.20.2, < 3.0.0", - "protobuf >= 3.20.2, < 7.0.0,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "protobuf >= 4.25.8, < 8.0.0", "pymemcache >= 2.1.0, < 5.0.0", "pytz >= 2018.3", "redis >= 3.0.0, < 7.0.0", @@ -68,8 +68,6 @@ def main(): "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -83,7 +81,7 @@ def main(): packages=packages, install_requires=dependencies, extras_require={}, - python_requires=">=3.7", + python_requires=">=3.9", include_package_data=False, zip_safe=False, ) diff --git a/packages/google-cloud-ndb/testing/constraints-3.7.txt b/packages/google-cloud-ndb/testing/constraints-3.7.txt deleted file mode 100644 index 1ca48ea4fa16..000000000000 --- a/packages/google-cloud-ndb/testing/constraints-3.7.txt +++ /dev/null @@ -1,15 +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-cloud-datastore==2.16.0 -google-api-core==1.34.0 -protobuf==3.20.2 -pymemcache==2.1.0 -redis==3.0.0 -pytz==2018.3 -# TODO(https://github.com/googleapis/python-ndb/issues/913) remove this dependency once six is no longer used in the codebase -six==1.12.0 diff --git a/packages/google-cloud-ndb/testing/constraints-3.8.txt b/packages/google-cloud-ndb/testing/constraints-3.8.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/google-cloud-ndb/testing/constraints-3.9.txt b/packages/google-cloud-ndb/testing/constraints-3.9.txt index e69de29bb2d1..648418093093 100644 --- a/packages/google-cloud-ndb/testing/constraints-3.9.txt +++ b/packages/google-cloud-ndb/testing/constraints-3.9.txt @@ -0,0 +1,15 @@ +# 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-cloud-datastore==2.16.0 +google-api-core==1.34.0 +protobuf==4.25.8 +pymemcache==2.1.0 +redis==3.0.0 +pytz==2018.3 +# TODO(https://github.com/googleapis/python-ndb/issues/913) remove this dependency once six is no longer used in the codebase +six==1.12.0 diff --git a/packages/google-cloud-runtimeconfig/CONTRIBUTING.rst b/packages/google-cloud-runtimeconfig/CONTRIBUTING.rst index e39c1f4ca7fd..47f8f62f6999 100644 --- a/packages/google-cloud-runtimeconfig/CONTRIBUTING.rst +++ b/packages/google-cloud-runtimeconfig/CONTRIBUTING.rst @@ -22,7 +22,7 @@ In order to add a feature: documentation. - The feature must work fully on the following CPython versions: - 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 on both UNIX and Windows. + 3.9, 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 @@ -143,12 +143,12 @@ Running System Tests $ nox -s system # Run a single system test - $ nox -s system-3.8 -- -k + $ nox -s system-3.12 -- -k .. note:: - System tests are only configured to run under Python 3.8. + System tests are only configured to run under Python 3.12. For expediency, we do not run them in older versions of Python 3. This alone will not run the tests. You'll need to change some local @@ -177,30 +177,6 @@ Build the docs via: $ nox -s docs -************************* -Samples and code snippets -************************* - -Code samples and snippets live in the `samples/` catalogue. Feel free to -provide more examples, but make sure to write tests for those examples. -Each folder containing example code requires its own `noxfile.py` script -which automates testing. If you decide to create a new folder, you can -base it on the `samples/snippets` folder (providing `noxfile.py` and -the requirements files). - -The tests will run against a real Google Cloud Project, so you should -configure them just like the System Tests. - -- To run sample tests, you can execute:: - - # Run all tests in a folder - $ cd samples/snippets - $ nox -s py-3.8 - - # Run a single sample test - $ cd samples/snippets - $ nox -s py-3.8 -- -k - ******************************************** Note About ``README`` as it pertains to PyPI ******************************************** @@ -221,8 +197,6 @@ Supported Python Versions We support: -- `Python 3.7`_ -- `Python 3.8`_ - `Python 3.9`_ - `Python 3.10`_ - `Python 3.11`_ @@ -230,8 +204,6 @@ We support: - `Python 3.13`_ - `Python 3.14`_ -.. _Python 3.7: https://docs.python.org/3.7/ -.. _Python 3.8: https://docs.python.org/3.8/ .. _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/ @@ -245,7 +217,7 @@ 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.7. +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 diff --git a/packages/google-cloud-runtimeconfig/README.rst b/packages/google-cloud-runtimeconfig/README.rst index 3f9197a620cd..46a224c8fab0 100644 --- a/packages/google-cloud-runtimeconfig/README.rst +++ b/packages/google-cloud-runtimeconfig/README.rst @@ -53,14 +53,14 @@ Supported Python Versions Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of Python. -Python >= 3.7 +Python >= 3.9 .. _active: https://devguide.python.org/devcycle/#in-development-main-branch .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches Unsupported Python Versions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Python <= 3.6 +Python <= 3.8 If you are using an `end-of-life`_ version of Python, we recommend that you update as soon as possible to an actively supported version. diff --git a/packages/google-cloud-runtimeconfig/noxfile.py b/packages/google-cloud-runtimeconfig/noxfile.py index 3c99329f34de..4e89db5ec33d 100644 --- a/packages/google-cloud-runtimeconfig/noxfile.py +++ b/packages/google-cloud-runtimeconfig/noxfile.py @@ -35,8 +35,6 @@ DEFAULT_PYTHON_VERSION = "3.14" UNIT_TEST_PYTHON_VERSIONS: List[str] = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", @@ -173,32 +171,14 @@ def install_unittest_dependencies(session, *constraints): @nox.session(python=UNIT_TEST_PYTHON_VERSIONS) -@nox.parametrize( - "protobuf_implementation", - ["python", "upb", "cpp"], -) -def unit(session, protobuf_implementation): +def unit(session): # Install all test dependencies, then install this package in-place. - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - constraints_path = str( CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt" ) install_unittest_dependencies(session, "-c", constraints_path) - # TODO(https://github.com/googleapis/synthtool/issues/1976): - # Remove the 'cpp' implementation once support for Protobuf 3.x is dropped. - # The 'cpp' implementation requires Protobuf<4. - if protobuf_implementation == "cpp": - session.install("protobuf<4") - # Run py.test against the unit tests. session.run( "py.test", @@ -212,9 +192,6 @@ def unit(session, protobuf_implementation): "--cov-fail-under=0", os.path.join("tests", "unit"), *session.posargs, - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) @@ -386,21 +363,9 @@ def docfx(session): @nox.session(python=DEFAULT_PYTHON_VERSION) -@nox.parametrize( - "protobuf_implementation", - ["python", "upb", "cpp"], -) -def prerelease_deps(session, protobuf_implementation): +def prerelease_deps(session): """Run all tests with prerelease versions of dependencies installed.""" - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - # Install all dependencies session.install("-e", ".[all, tests, tracing]") unit_deps_all = UNIT_TEST_STANDARD_DEPENDENCIES + UNIT_TEST_EXTERNAL_DEPENDENCIES @@ -441,9 +406,6 @@ def prerelease_deps(session, protobuf_implementation): session.run( "py.test", "tests/unit", - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) system_test_path = os.path.join("tests", "system.py") @@ -457,9 +419,6 @@ def prerelease_deps(session, protobuf_implementation): f"--junitxml=system_{session.python}_sponge_log.xml", system_test_path, *session.posargs, - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) if os.path.exists(system_test_folder_path): session.run( @@ -468,29 +427,14 @@ def prerelease_deps(session, protobuf_implementation): f"--junitxml=system_{session.python}_sponge_log.xml", system_test_folder_path, *session.posargs, - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) @nox.session(python=DEFAULT_PYTHON_VERSION) -@nox.parametrize( - "protobuf_implementation", - ["python", "upb", "cpp"], -) -def core_deps_from_source(session, protobuf_implementation): +def core_deps_from_source(session): """Run all tests with core dependencies installed from source rather than pulling the dependencies from PyPI.""" - if protobuf_implementation == "cpp" and session.python in ( - "3.11", - "3.12", - "3.13", - "3.14", - ): - session.skip("cpp implementation is not supported in python 3.11+") - # Install all dependencies session.install("-e", ".[all, tests, tracing]") unit_deps_all = UNIT_TEST_STANDARD_DEPENDENCIES + UNIT_TEST_EXTERNAL_DEPENDENCIES @@ -533,9 +477,6 @@ def core_deps_from_source(session, protobuf_implementation): session.run( "py.test", "tests/unit", - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) system_test_path = os.path.join("tests", "system.py") @@ -549,9 +490,6 @@ def core_deps_from_source(session, protobuf_implementation): f"--junitxml=system_{session.python}_sponge_log.xml", system_test_path, *session.posargs, - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) if os.path.exists(system_test_folder_path): session.run( @@ -560,7 +498,4 @@ def core_deps_from_source(session, protobuf_implementation): f"--junitxml=system_{session.python}_sponge_log.xml", system_test_folder_path, *session.posargs, - env={ - "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": protobuf_implementation, - }, ) diff --git a/packages/google-cloud-runtimeconfig/setup.py b/packages/google-cloud-runtimeconfig/setup.py index 8103d9840f02..988bf437ec7e 100644 --- a/packages/google-cloud-runtimeconfig/setup.py +++ b/packages/google-cloud-runtimeconfig/setup.py @@ -74,8 +74,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -89,7 +87,7 @@ packages=packages, install_requires=dependencies, extras_require=extras, - python_requires=">=3.7", + python_requires=">=3.9", include_package_data=True, zip_safe=False, ) diff --git a/packages/google-cloud-runtimeconfig/testing/constraints-3.7.txt b/packages/google-cloud-runtimeconfig/testing/constraints-3.7.txt deleted file mode 100644 index e37a6a74b6ba..000000000000 --- a/packages/google-cloud-runtimeconfig/testing/constraints-3.7.txt +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 2021 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# 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-cloud-core==1.4.4 diff --git a/packages/google-cloud-runtimeconfig/testing/constraints-3.8.txt b/packages/google-cloud-runtimeconfig/testing/constraints-3.8.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/google-cloud-runtimeconfig/testing/constraints-3.9.txt b/packages/google-cloud-runtimeconfig/testing/constraints-3.9.txt index e69de29bb2d1..0f2b09818072 100644 --- a/packages/google-cloud-runtimeconfig/testing/constraints-3.9.txt +++ b/packages/google-cloud-runtimeconfig/testing/constraints-3.9.txt @@ -0,0 +1,9 @@ +# 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-cloud-core==1.4.4 diff --git a/packages/google-cloud-testutils/noxfile.py b/packages/google-cloud-testutils/noxfile.py index 8b182286bc91..adcdcf8b34f4 100644 --- a/packages/google-cloud-testutils/noxfile.py +++ b/packages/google-cloud-testutils/noxfile.py @@ -32,7 +32,7 @@ # Error if a python version is missing nox.options.error_on_missing_interpreters = True -ALL_PYTHON = ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] +ALL_PYTHON = ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] DEFAULT_PYTHON_VERSION = "3.14" BLACK_VERSION = "black==23.7.0" BLACK_PATHS = ["test_utils", "setup.py"] @@ -128,7 +128,7 @@ def system(session): "--package-name", "google-cloud-testutils", "--constraints-file", - "testing/constraints-3.7.txt", + "testing/constraints-3.9.txt", ) @@ -142,7 +142,7 @@ def update_lower_bounds(session): "--package-name", "google-cloud-testutils", "--constraints-file", - "testing/constraints-3.7.txt", + "testing/constraints-3.9.txt", ) diff --git a/packages/google-cloud-testutils/setup.py b/packages/google-cloud-testutils/setup.py index 9e0676785b57..b04f6c916cc9 100644 --- a/packages/google-cloud-testutils/setup.py +++ b/packages/google-cloud-testutils/setup.py @@ -58,16 +58,13 @@ "google-auth >= 0.4.0", "click>=7.0.0", "packaging>=19.0", - "importlib_metadata>=1.0.0; python_version<'3.8'", ), - python_requires=">=3.7", + python_requires=">=3.9", classifiers=[ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", diff --git a/packages/google-cloud-testutils/testing/constraints-3.7.txt b/packages/google-cloud-testutils/testing/constraints-3.7.txt deleted file mode 100644 index e694520d0743..000000000000 --- a/packages/google-cloud-testutils/testing/constraints-3.7.txt +++ /dev/null @@ -1,4 +0,0 @@ -click==7.0.0 -google-auth==0.4.0 -importlib_metadata==1.0.0 -packaging==19.0 diff --git a/packages/google-cloud-testutils/testing/constraints-3.8.txt b/packages/google-cloud-testutils/testing/constraints-3.8.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/google-cloud-testutils/testing/constraints-3.9.txt b/packages/google-cloud-testutils/testing/constraints-3.9.txt index e69de29bb2d1..525e3e426e68 100644 --- a/packages/google-cloud-testutils/testing/constraints-3.9.txt +++ b/packages/google-cloud-testutils/testing/constraints-3.9.txt @@ -0,0 +1,11 @@ +# 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 +click==7.0.0 +google-auth==0.4.0 +importlib_metadata==1.0.0 +packaging==19.0 diff --git a/packages/google-cloud-testutils/tests/unit/resources/bad_package/setup.py b/packages/google-cloud-testutils/tests/unit/resources/bad_package/setup.py index cff27e1a54de..a26333eace12 100644 --- a/packages/google-cloud-testutils/tests/unit/resources/bad_package/setup.py +++ b/packages/google-cloud-testutils/tests/unit/resources/bad_package/setup.py @@ -36,5 +36,5 @@ ], install_requires=requirements, packages=setuptools.find_packages(), - python_requires=">=3.7", + python_requires=">=3.9", ) diff --git a/packages/google-cloud-testutils/tests/unit/resources/good_package/setup.py b/packages/google-cloud-testutils/tests/unit/resources/good_package/setup.py index 2833216580ad..85e83788cd9c 100644 --- a/packages/google-cloud-testutils/tests/unit/resources/good_package/setup.py +++ b/packages/google-cloud-testutils/tests/unit/resources/good_package/setup.py @@ -42,5 +42,5 @@ install_requires=requirements, extras_require=extras, packages=setuptools.find_packages(), - python_requires=">=3.7", + python_requires=">=3.9", ) diff --git a/packages/google-resumable-media/README.rst b/packages/google-resumable-media/README.rst index 99e9fbf3e377..ae3e8823aab4 100644 --- a/packages/google-resumable-media/README.rst +++ b/packages/google-resumable-media/README.rst @@ -16,18 +16,13 @@ support at `google._async_resumable_media`. Supported Python Versions ------------------------- -Python >= 3.7 +Python >= 3.9 Unsupported Python Versions --------------------------- -Python == 2.7, Python == 3.5, Python == 3.6. +Python <= 3.8 -The last version of this library compatible with Python 2.7 and 3.5 is -`google-resumable-media==1.3.3`. - -The last version of this library compatible with Python 3.6 is -`google-resumable-media==2.3.3`. License ------- diff --git a/packages/google-resumable-media/noxfile.py b/packages/google-resumable-media/noxfile.py index 0bf3e504fdc5..84fb6a492e72 100644 --- a/packages/google-resumable-media/noxfile.py +++ b/packages/google-resumable-media/noxfile.py @@ -25,7 +25,7 @@ RUFF_VERSION = "ruff==0.14.14" DEFAULT_PYTHON_VERSION = "3.14" -UNIT_TEST_PYTHON_VERSIONS = ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] +UNIT_TEST_PYTHON_VERSIONS = ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] SYSTEM_TEST_PYTHON_VERSIONS = UNIT_TEST_PYTHON_VERSIONS # Error if a python version is missing diff --git a/packages/google-resumable-media/setup.py b/packages/google-resumable-media/setup.py index 81610733d382..e14af59f2ee0 100644 --- a/packages/google-resumable-media/setup.py +++ b/packages/google-resumable-media/setup.py @@ -51,15 +51,13 @@ zip_safe=False, install_requires=REQUIREMENTS, extras_require=EXTRAS_REQUIRE, - python_requires='>= 3.7', + python_requires='>= 3.9', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', diff --git a/packages/google-resumable-media/testing/constraints-3.7.txt b/packages/google-resumable-media/testing/constraints-3.7.txt deleted file mode 100644 index fa3aa7d0a1cc..000000000000 --- a/packages/google-resumable-media/testing/constraints-3.7.txt +++ /dev/null @@ -1,4 +0,0 @@ -crcmod==1.7 -google-crc32c==1.0 -aiohttp==3.6.2 -requests==2.23.0 diff --git a/packages/google-resumable-media/testing/constraints-3.8.txt b/packages/google-resumable-media/testing/constraints-3.8.txt deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/google-resumable-media/testing/constraints-3.9.txt b/packages/google-resumable-media/testing/constraints-3.9.txt index e69de29bb2d1..c620397947d2 100644 --- a/packages/google-resumable-media/testing/constraints-3.9.txt +++ b/packages/google-resumable-media/testing/constraints-3.9.txt @@ -0,0 +1,11 @@ +# 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 +crcmod==1.7 +google-crc32c==1.0 +aiohttp==3.6.2 +requests==2.23.0 From 4aaff199aa364968ade53bb511b4cf55bcaa2f97 Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Fri, 13 Mar 2026 15:47:23 +0000 Subject: [PATCH 2/6] fix: fix tests --- .github/workflows/unittest.yml | 2 +- packages/google-auth-httplib2/noxfile.py | 2 +- packages/google-auth-oauthlib/noxfile.py | 2 +- .../google-cloud-access-context-manager/noxfile.py | 6 +++--- packages/google-cloud-audit-log/noxfile.py | 6 +++--- packages/google-cloud-core/noxfile.py | 10 +++++----- packages/google-cloud-dns/noxfile.py | 9 +++++---- packages/google-cloud-testutils/noxfile.py | 2 +- 8 files changed, 20 insertions(+), 19 deletions(-) diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index d783dca883ff..4e2120f5953d 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - python: ['3.7', '3.8', '3.9', '3.10', "3.11", "3.12", "3.13", "3.14"] + python: ['3.9', '3.10', "3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout uses: actions/checkout@v4 diff --git a/packages/google-auth-httplib2/noxfile.py b/packages/google-auth-httplib2/noxfile.py index 41e4412c6fe8..1d8152cd3cdc 100644 --- a/packages/google-auth-httplib2/noxfile.py +++ b/packages/google-auth-httplib2/noxfile.py @@ -479,7 +479,7 @@ def core_deps_from_source(session): # Note: If a dependency is added to the `core_dependencies_from_source` list, # the `prerel_deps` list in the `prerelease_deps` nox session should also be updated. core_dependencies_from_source = [ - "google-auth @ git+https://github.com/googleapis/google-auth-library-python.git", + "google-auth @ git+https://github.com/googleapis/google-cloud-python#egg=google-auth&subdirectory=packages/google-auth", ] for dep in core_dependencies_from_source: diff --git a/packages/google-auth-oauthlib/noxfile.py b/packages/google-auth-oauthlib/noxfile.py index 8dea436bf3b0..f592a81deda3 100644 --- a/packages/google-auth-oauthlib/noxfile.py +++ b/packages/google-auth-oauthlib/noxfile.py @@ -435,7 +435,7 @@ def core_deps_from_source(session): session.install(*constraints_deps) core_dependencies_from_source = [ - "google-auth @ git+https://github.com/googleapis/google-auth-library-python.git", + "google-auth @ git+https://github.com/googleapis/google-cloud-python#egg=google-auth&subdirectory=packages/google-auth", "requests-oauthlib @ git+https://github.com/requests/requests-oauthlib.git", ] diff --git a/packages/google-cloud-access-context-manager/noxfile.py b/packages/google-cloud-access-context-manager/noxfile.py index 30a8397c6df4..b6ae8c821dca 100644 --- a/packages/google-cloud-access-context-manager/noxfile.py +++ b/packages/google-cloud-access-context-manager/noxfile.py @@ -560,10 +560,10 @@ def core_deps_from_source(session, protobuf_implementation): # the `prerel_deps` list in the `prerelease_deps` nox session should also be updated. core_dependencies_from_source = [ f"{CURRENT_DIRECTORY}/../googleapis-common-protos", - "google-api-core @ git+https://github.com/googleapis/python-api-core.git", - "google-auth @ git+https://github.com/googleapis/google-auth-library-python.git", + f"{CURRENT_DIRECTORY}/../google-api-core", + f"{CURRENT_DIRECTORY}/../google-auth", f"{CURRENT_DIRECTORY}/../grpc-google-iam-v1", - "proto-plus @ git+https://github.com/googleapis/proto-plus-python.git", + f"{CURRENT_DIRECTORY}/../proto-plus", ] for dep in core_dependencies_from_source: diff --git a/packages/google-cloud-audit-log/noxfile.py b/packages/google-cloud-audit-log/noxfile.py index 6557c9ab5a80..08186db3117f 100644 --- a/packages/google-cloud-audit-log/noxfile.py +++ b/packages/google-cloud-audit-log/noxfile.py @@ -545,11 +545,11 @@ def core_deps_from_source(session, protobuf_implementation): session.install(*constraints_deps) core_dependencies_from_source = [ - "google-api-core @ git+https://github.com/googleapis/python-api-core.git", - "google-auth @ git+https://github.com/googleapis/google-auth-library-python.git", f"{CURRENT_DIRECTORY}/../googleapis-common-protos", + f"{CURRENT_DIRECTORY}/../google-api-core", + f"{CURRENT_DIRECTORY}/../google-auth", f"{CURRENT_DIRECTORY}/../grpc-google-iam-v1", - "proto-plus @ git+https://github.com/googleapis/proto-plus-python.git", + f"{CURRENT_DIRECTORY}/../proto-plus" ] for dep in core_dependencies_from_source: diff --git a/packages/google-cloud-core/noxfile.py b/packages/google-cloud-core/noxfile.py index fbd95c7b33dd..400a0235d6a4 100644 --- a/packages/google-cloud-core/noxfile.py +++ b/packages/google-cloud-core/noxfile.py @@ -338,11 +338,11 @@ def core_deps_from_source(session, protobuf_implementation): # Note: If a dependency is added to the `core_dependencies_from_source` list, # the `prerel_deps` list in the `prerelease_deps` nox session should also be updated. core_dependencies_from_source = [ - "googleapis-common-protos @ git+https://github.com/googleapis/google-cloud-python#egg=googleapis-common-protos&subdirectory=packages/googleapis-common-protos", - "google-api-core @ git+https://github.com/googleapis/python-api-core.git", - "google-auth @ git+https://github.com/googleapis/google-auth-library-python.git", - "grpc-google-iam-v1 @ git+https://github.com/googleapis/google-cloud-python#egg=grpc-google-iam-v1&subdirectory=packages/grpc-google-iam-v1", - "proto-plus @ git+https://github.com/googleapis/proto-plus-python.git", + f"{CURRENT_DIRECTORY}/../googleapis-common-protos", + f"{CURRENT_DIRECTORY}/../google-api-core", + f"{CURRENT_DIRECTORY}/../google-auth", + f"{CURRENT_DIRECTORY}/../grpc-google-iam-v1", + f"{CURRENT_DIRECTORY}/../proto-plus" ] for dep in core_dependencies_from_source: diff --git a/packages/google-cloud-dns/noxfile.py b/packages/google-cloud-dns/noxfile.py index 04426bb57618..fdd9b15b3862 100644 --- a/packages/google-cloud-dns/noxfile.py +++ b/packages/google-cloud-dns/noxfile.py @@ -477,10 +477,11 @@ def core_deps_from_source(session): # Note: If a dependency is added to the `core_dependencies_from_source` list, # the `prerel_deps` list in the `prerelease_deps` nox session should also be updated. core_dependencies_from_source = [ - "googleapis-common-protos @ git+https://github.com/googleapis/google-cloud-python#egg=googleapis-common-protos&subdirectory=packages/googleapis-common-protos", - "google-cloud-core @ git+https://github.com/googleapis/python-cloud-core.git", - "google-auth @ git+https://github.com/googleapis/google-auth-library-python.git", - "proto-plus @ git+https://github.com/googleapis/proto-plus-python.git", + f"{CURRENT_DIRECTORY}/../googleapis-common-protos", + f"{CURRENT_DIRECTORY}/../google-api-core", + f"{CURRENT_DIRECTORY}/../google-auth", + f"{CURRENT_DIRECTORY}/../grpc-google-iam-v1", + f"{CURRENT_DIRECTORY}/../proto-plus" ] for dep in core_dependencies_from_source: session.install(dep, "--no-deps", "--ignore-installed") diff --git a/packages/google-cloud-testutils/noxfile.py b/packages/google-cloud-testutils/noxfile.py index adcdcf8b34f4..1bf1d350defb 100644 --- a/packages/google-cloud-testutils/noxfile.py +++ b/packages/google-cloud-testutils/noxfile.py @@ -343,7 +343,7 @@ def core_deps_from_source(session): # Note: If a dependency is added to the `core_dependencies_from_source` list, # the `prerel_deps` list in the `prerelease_deps` nox session should also be updated. core_dependencies_from_source = [ - "google-auth @ git+https://github.com/googleapis/google-auth-library-python.git", + "google-auth @ git+https://github.com/googleapis/google-cloud-python#egg=google-auth&subdirectory=packages/google-auth", ] for dep in core_dependencies_from_source: From bae7a58bcbe99fbd0cf230588632ffcb98d1d63c Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Fri, 13 Mar 2026 15:48:54 +0000 Subject: [PATCH 3/6] fix: fix tests --- .../google-cloud-runtimeconfig/testing/constraints-3.9.txt | 1 - .../test_utils/lower_bound_checker/lower_bound_checker.py | 5 +---- packages/google-cloud-testutils/testing/constraints-3.9.txt | 1 - 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/google-cloud-runtimeconfig/testing/constraints-3.9.txt b/packages/google-cloud-runtimeconfig/testing/constraints-3.9.txt index 0f2b09818072..327aaf29bca7 100644 --- a/packages/google-cloud-runtimeconfig/testing/constraints-3.9.txt +++ b/packages/google-cloud-runtimeconfig/testing/constraints-3.9.txt @@ -5,5 +5,4 @@ # # e.g., if setup.py has "foo >= 1.14.0, < 2.0.0dev", # Then this file should have foo==1.14.0 - google-cloud-core==1.4.4 diff --git a/packages/google-cloud-testutils/test_utils/lower_bound_checker/lower_bound_checker.py b/packages/google-cloud-testutils/test_utils/lower_bound_checker/lower_bound_checker.py index b6594ded1700..9c6ce0ea658a 100644 --- a/packages/google-cloud-testutils/test_utils/lower_bound_checker/lower_bound_checker.py +++ b/packages/google-cloud-testutils/test_utils/lower_bound_checker/lower_bound_checker.py @@ -20,10 +20,7 @@ from packaging.requirements import Requirement from packaging.version import Version -if sys.version_info < (3, 8): - import importlib_metadata as metadata -else: - import importlib.metadata as metadata +import importlib.metadata as metadata def _get_package_requirements(package_name: str) -> List[Requirement]: diff --git a/packages/google-cloud-testutils/testing/constraints-3.9.txt b/packages/google-cloud-testutils/testing/constraints-3.9.txt index 525e3e426e68..7b28790a84be 100644 --- a/packages/google-cloud-testutils/testing/constraints-3.9.txt +++ b/packages/google-cloud-testutils/testing/constraints-3.9.txt @@ -7,5 +7,4 @@ # Then this file should have foo==1.14.0 click==7.0.0 google-auth==0.4.0 -importlib_metadata==1.0.0 packaging==19.0 From f8a86dcdfbbd32ce566178893eef70b858ef008c Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Fri, 13 Mar 2026 15:49:39 +0000 Subject: [PATCH 4/6] fix: fix tests --- packages/bigquery-magics/noxfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bigquery-magics/noxfile.py b/packages/bigquery-magics/noxfile.py index 09fdb93536e2..3e93ccdbcb33 100644 --- a/packages/bigquery-magics/noxfile.py +++ b/packages/bigquery-magics/noxfile.py @@ -82,7 +82,7 @@ ], } -SYSTEM_TEST_PYTHON_VERSIONS: List[str] = ALL_PYTHON +SYSTEM_TEST_PYTHON_VERSIONS: List[str] = UNIT_TEST_PYTHON_VERSIONS SYSTEM_TEST_STANDARD_DEPENDENCIES: List[str] = [ "mock", "pytest", From 5bfe867d9cc885f60f0df88aad66765f0048765c Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Fri, 13 Mar 2026 16:00:07 +0000 Subject: [PATCH 5/6] fix: fix tests --- packages/bigquery-magics/noxfile.py | 7 +++---- packages/google-auth-httplib2/noxfile.py | 2 +- packages/google-auth-oauthlib/noxfile.py | 2 +- packages/google-cloud-runtimeconfig/noxfile.py | 2 +- packages/google-cloud-testutils/noxfile.py | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/bigquery-magics/noxfile.py b/packages/bigquery-magics/noxfile.py index 3e93ccdbcb33..0b121f7de8b5 100644 --- a/packages/bigquery-magics/noxfile.py +++ b/packages/bigquery-magics/noxfile.py @@ -478,12 +478,11 @@ def prerelease_deps(session): # from main to detect any potential breaking changes. For context, see: # https://github.com/googleapis/python-bigquery-pandas/issues/854 session.install( - "--pre", - "--upgrade", + "--ignore-installed", # TODO(https://github.com/googleapis/google-cloud-python/pull/126): Install this again when we relax the pin. # "https://github.com/cloudspannerecosystem/spanner-graph-notebook/archive/refs/heads/main.zip", - "https://github.com/googleapis/python-bigquery/archive/main.zip", - "https://github.com/googleapis/google-cloud-python/archive/main.zip#egg=google-cloud-bigquery-storage&subdirectory=packages/google-cloud-bigquery-storage", + f"{CURRENT_DIRECTORY}/../google-cloud-bigquery", + f"{CURRENT_DIRECTORY}/../google-cloud-bigquery-storage", ) # Print out prerelease package versions session.run("pip", "freeze") diff --git a/packages/google-auth-httplib2/noxfile.py b/packages/google-auth-httplib2/noxfile.py index 1d8152cd3cdc..f5807d1fce5b 100644 --- a/packages/google-auth-httplib2/noxfile.py +++ b/packages/google-auth-httplib2/noxfile.py @@ -479,7 +479,7 @@ def core_deps_from_source(session): # Note: If a dependency is added to the `core_dependencies_from_source` list, # the `prerel_deps` list in the `prerelease_deps` nox session should also be updated. core_dependencies_from_source = [ - "google-auth @ git+https://github.com/googleapis/google-cloud-python#egg=google-auth&subdirectory=packages/google-auth", + f"{CURRENT_DIRECTORY}/../google-auth", ] for dep in core_dependencies_from_source: diff --git a/packages/google-auth-oauthlib/noxfile.py b/packages/google-auth-oauthlib/noxfile.py index f592a81deda3..7b6637889775 100644 --- a/packages/google-auth-oauthlib/noxfile.py +++ b/packages/google-auth-oauthlib/noxfile.py @@ -435,7 +435,7 @@ def core_deps_from_source(session): session.install(*constraints_deps) core_dependencies_from_source = [ - "google-auth @ git+https://github.com/googleapis/google-cloud-python#egg=google-auth&subdirectory=packages/google-auth", + f"{CURRENT_DIRECTORY}/../google-auth", "requests-oauthlib @ git+https://github.com/requests/requests-oauthlib.git", ] diff --git a/packages/google-cloud-runtimeconfig/noxfile.py b/packages/google-cloud-runtimeconfig/noxfile.py index 4e89db5ec33d..9ae3a68fedc3 100644 --- a/packages/google-cloud-runtimeconfig/noxfile.py +++ b/packages/google-cloud-runtimeconfig/noxfile.py @@ -468,7 +468,7 @@ def core_deps_from_source(session): # Note: If a dependency is added to the `core_dependencies_from_source` list, # the `prerel_deps` list in the `prerelease_deps` nox session should also be updated. core_dependencies_from_source = [ - "google-cloud-core @ git+https://github.com/googleapis/python-cloud-core.git", + f"{CURRENT_DIRECTORY}/../google-cloud-core", ] for dep in core_dependencies_from_source: diff --git a/packages/google-cloud-testutils/noxfile.py b/packages/google-cloud-testutils/noxfile.py index 1bf1d350defb..65f9c1ee1967 100644 --- a/packages/google-cloud-testutils/noxfile.py +++ b/packages/google-cloud-testutils/noxfile.py @@ -343,7 +343,7 @@ def core_deps_from_source(session): # Note: If a dependency is added to the `core_dependencies_from_source` list, # the `prerel_deps` list in the `prerelease_deps` nox session should also be updated. core_dependencies_from_source = [ - "google-auth @ git+https://github.com/googleapis/google-cloud-python#egg=google-auth&subdirectory=packages/google-auth", + f"{CURRENT_DIRECTORY}/../google-auth", ] for dep in core_dependencies_from_source: From 03974018897ff5d4b9d040c2b9ea37fb9be4df16 Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Fri, 13 Mar 2026 16:06:59 +0000 Subject: [PATCH 6/6] fix: fix tests --- packages/google-cloud-audit-log/noxfile.py | 2 +- packages/google-cloud-dns/noxfile.py | 2 +- .../test_utils/lower_bound_checker/lower_bound_checker.py | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/google-cloud-audit-log/noxfile.py b/packages/google-cloud-audit-log/noxfile.py index 08186db3117f..0e4d1c334a62 100644 --- a/packages/google-cloud-audit-log/noxfile.py +++ b/packages/google-cloud-audit-log/noxfile.py @@ -549,7 +549,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-dns/noxfile.py b/packages/google-cloud-dns/noxfile.py index fdd9b15b3862..f6b6a6d3f757 100644 --- a/packages/google-cloud-dns/noxfile.py +++ b/packages/google-cloud-dns/noxfile.py @@ -481,7 +481,7 @@ def core_deps_from_source(session): 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: session.install(dep, "--no-deps", "--ignore-installed") diff --git a/packages/google-cloud-testutils/test_utils/lower_bound_checker/lower_bound_checker.py b/packages/google-cloud-testutils/test_utils/lower_bound_checker/lower_bound_checker.py index 9c6ce0ea658a..64e52abeefe4 100644 --- a/packages/google-cloud-testutils/test_utils/lower_bound_checker/lower_bound_checker.py +++ b/packages/google-cloud-testutils/test_utils/lower_bound_checker/lower_bound_checker.py @@ -15,7 +15,6 @@ import click from pathlib import Path from typing import List, Tuple, Set -import sys from packaging.requirements import Requirement from packaging.version import Version