From 7126e45c65b0d00e45c72c546c972a69effd092d Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Tue, 28 Oct 2025 08:57:31 -0400 Subject: [PATCH 1/5] chore(python): Add support for Python 3.14 --- owlbot.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/owlbot.py b/owlbot.py index daa1abb..183e7a4 100644 --- a/owlbot.py +++ b/owlbot.py @@ -10,7 +10,7 @@ microgenerator=True, cov_level=99, unit_test_external_dependencies=["click"], - unit_test_python_versions=["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13"], + unit_test_python_versions=["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"], default_python_version="3.10", ) s.move(templated_files, excludes=[ @@ -40,4 +40,11 @@ '"--cov=google_auth_oauthlib",', ) +# Skip Cpp Unittest in 3.11, 3.12, 3.13, and 3.14 +s.replace( + "noxfile.py", + '''session.python in ("3.11", "3.12", "3.13")''', + '''session.python in ("3.11", "3.12", "3.13", "3.14")''' +) + s.shell.run(["nox", "-s", "blacken"], hide_output=False) From e04e5743b375405b74e05e2102245c49299123a2 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 28 Oct 2025 13:00:04 +0000 Subject: [PATCH 2/5] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?= =?UTF-8?q?st-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .github/workflows/unittest.yml | 2 +- CONTRIBUTING.rst | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index 448486f..01978ba 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - python: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13'] + python: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] steps: - name: Checkout uses: actions/checkout@v4 diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index a035858..79985c1 100644 --- a/CONTRIBUTING.rst +++ b/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 and 3.13 on both UNIX and Windows. + 3.7, 3.8, 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,7 +72,7 @@ We use `nox `__ to instrument our tests. - To run a single unit test:: - $ nox -s unit-3.13 -- -k + $ nox -s unit-3.14 -- -k .. note:: @@ -228,6 +228,7 @@ We support: - `Python 3.11`_ - `Python 3.12`_ - `Python 3.13`_ +- `Python 3.14`_ .. _Python 3.7: https://docs.python.org/3.7/ .. _Python 3.8: https://docs.python.org/3.8/ @@ -236,6 +237,7 @@ We support: .. _Python 3.11: https://docs.python.org/3.11/ .. _Python 3.12: https://docs.python.org/3.12/ .. _Python 3.13: https://docs.python.org/3.13/ +.. _Python 3.14: https://docs.python.org/3.14/ Supported versions can be found in our ``noxfile.py`` `config`_. From 71f1777347be2c06ce13b6cd9e444956d77e72e5 Mon Sep 17 00:00:00 2001 From: Chalmer Lowe Date: Tue, 28 Oct 2025 09:05:04 -0400 Subject: [PATCH 3/5] Apply suggestion from @chalmerlowe --- owlbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/owlbot.py b/owlbot.py index 183e7a4..991c36c 100644 --- a/owlbot.py +++ b/owlbot.py @@ -43,7 +43,7 @@ # Skip Cpp Unittest in 3.11, 3.12, 3.13, and 3.14 s.replace( "noxfile.py", - '''session.python in ("3.11", "3.12", "3.13")''', + '''session.python in \("3.11", "3.12", "3.13"\)''', '''session.python in ("3.11", "3.12", "3.13", "3.14")''' ) From ad4756589a0e5f7918b87933aff0ff79a89c0c71 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 28 Oct 2025 13:07:05 +0000 Subject: [PATCH 4/5] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?= =?UTF-8?q?st-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- noxfile.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/noxfile.py b/noxfile.py index bbc87dd..29e15f6 100644 --- a/noxfile.py +++ b/noxfile.py @@ -179,7 +179,12 @@ def install_unittest_dependencies(session, *constraints): 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"): + 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( @@ -387,7 +392,12 @@ def docfx(session): 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"): + 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 From 7a49bf46c76c59886e11128be4b1bb29362c1873 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Tue, 28 Oct 2025 09:21:02 -0400 Subject: [PATCH 5/5] feat(ci): Add Python 3.14 support to core files --- noxfile.py | 1 + setup.py | 1 + testing/constraints-3.14.txt | 0 3 files changed, 2 insertions(+) create mode 100644 testing/constraints-3.14.txt diff --git a/noxfile.py b/noxfile.py index 29e15f6..db042c1 100644 --- a/noxfile.py +++ b/noxfile.py @@ -45,6 +45,7 @@ "3.11", "3.12", "3.13", + "3.14", ] UNIT_TEST_STANDARD_DEPENDENCIES = [ "mock", diff --git a/setup.py b/setup.py index 7f615b8..1240a71 100644 --- a/setup.py +++ b/setup.py @@ -63,6 +63,7 @@ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", diff --git a/testing/constraints-3.14.txt b/testing/constraints-3.14.txt new file mode 100644 index 0000000..e69de29