Skip to content
This repository was archived by the owner on Mar 6, 2026. It is now read-only.

feat: adds support for Python runtime 3.14 - #2322

Merged
chalmerlowe merged 17 commits into
mainfrom
feat/adds-support-for-314
Oct 20, 2025
Merged

feat: adds support for Python runtime 3.14#2322
chalmerlowe merged 17 commits into
mainfrom
feat/adds-support-for-314

Conversation

@chalmerlowe

Copy link
Copy Markdown
Collaborator

This PR updates the python-bigquery library to add support for Python 3.14.

The following changes have been made:

  • Added the trove classifier for Python 3.14 in pyproject.toml.
  • Added Python 3.14 to the test matrix in the GitHub Actions workflow (.github/workflows/unittest.yml).
  • Created a new constraints file testing/constraints-3.14.txt to include a minimum version for grpcio (>= 1.75.1) required by Python 3.14.
  • Updated CONTRIBUTING.rst to list Python 3.14 as a supported version.
  • Added Samples - Python 3.14 to the required status checks in .github/sync-repo-settings.yaml.
  • Included "3.14" in the unit_test_python_versions list in owlbot.py.
  • Added the grpcio >= 1.75.1 constraint for python_version >= '3.14' in the optional dependencies
    (bqstorage, pandas) in pyproject.toml.
  • Updated UNIT_TEST_PYTHON_VERSIONS in noxfile.py to include "3.14".

These changes ensure that the library is tested against Python 3.14 and declares support for it, while also handling the new grpcio dependency requirement.

@chalmerlowe
chalmerlowe requested review from a team and shollymanOctober 15, 2025 20:09
@product-auto-labelproduct-auto-labelBot added size: s Pull request size is small. api: bigquery Issues related to the googleapis/python-bigquery API. labels Oct 15, 2025
@shollymanshollyman removed their assignment Oct 15, 2025
Comment thread.github/workflows/unittest.yml Outdated

@vchudnov-gvchudnov-g left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the GitHub presubmits, I see the unit tests for 3.14 ran, but the sample tests for 3.14 did not . Neither did Kokoro snippets and Kokoro system, for 3.14. It looks from our guide that at least the samples test should be configured to run. And it would be great to get the Kokoro test to run right away as well, though tbh i don't know whether those depend on additional configs.

Comment thread.github/workflows/unittest.yml Outdated
python -m pip install nox
- name: Run unit tests

# TODO 3.14 is not yet supported by pyarrow. See

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you file an issue to track this, and mention it in the TODO. Something like:
TODO(http://....): Re-enable tests on Python 3.14 once....

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Github issues automatically become buganizer issues for this repo. There is no need for me to file an issue.
I will add the buganizer number, per request.

Comment threadnoxfile.py Outdated
DEFAULT_PYTHON_VERSION = "3.9"
SYSTEM_TEST_PYTHON_VERSIONS = ["3.9", "3.11", "3.12", "3.13"]
UNIT_TEST_PYTHON_VERSIONS = ["3.9", "3.11", "3.12", "3.13"]
UNIT_TEST_PYTHON_VERSIONS = ["3.9", "3.11", "3.12", "3.13", "3.14"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is 3.10 missing (even before this PR)? Either we test on all supported versions, or we sample fewer (like the lowest and highest), don't you think?

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated.

Comment thread.github/workflows/unittest.yml Outdated
Comment threadnoxfile.py Outdated
@chalmerlowechalmerlowe added the kokoro:run Add this label to force Kokoro to re-run the tests. label Oct 20, 2025
@yoshi-kokoroyoshi-kokoro removed the kokoro:run Add this label to force Kokoro to re-run the tests. label Oct 20, 2025
Comment thread.github/workflows/unittest.yml Outdated
@chalmerlowe

chalmerlowe commented Oct 20, 2025

Copy link
Copy Markdown
CollaboratorAuthor

@vchudnov-g

DONE:

Note: there is an internal CL to add Samples for 3.14 as a check in presubmit: https://critique.corp.google.com/cl/821648116

@vchudnov-gvchudnov-g left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for doing this! Just one non-blocking cosmetic comment.

Comment on lines +25 to +28
# TODO (https://b.corp.google.com/issues/450370502) 3.14 is not yet supported by pyarrow. See
# https://github.com/googleapis/google-cloud-python/issues/14686
# https://github.com/apache/arrow/issues/47438
# Reinstate running tests with 3.14 once this bug is fixed

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's avoid references to internal issues where we can.

Suggested change
# TODO (https://b.corp.google.com/issues/450370502) 3.14 is not yet supported by pyarrow. See
# https://github.com/googleapis/google-cloud-python/issues/14686
# https://github.com/apache/arrow/issues/47438
# Reinstate running tests with 3.14 once this bug is fixed
# TODO (https://github.com/googleapis/google-cloud-python/issues/14686) Reinstate running
# tests with 3.14 once Python 3.14 is supported by pyarrow.
# See also https://github.com/apache/arrow/issues/47438

@chalmerlowe
chalmerlowe merged commit 6065e14 into mainOct 20, 2025
30 checks passed
@chalmerlowe
chalmerlowe deleted the feat/adds-support-for-314 branch October 20, 2025 19:06
@release-pleaserelease-pleaseBot mentioned this pull request Oct 20, 2025
daniel-sanche added a commit that referenced this pull request Dec 15, 2025
PR created by the Librarian CLI to initialize a release. Merging this PR
will auto trigger a release.
Librarian Version: v0.7.0
Language Image:
us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-librarian-generator@sha256:c8612d3fffb3f6a32353b2d1abd16b61e87811866f7ec9d65b59b02eb452a620
<details><summary>google-cloud-bigquery: 3.39.0</summary>
##
[3.39.0](v3.38.0...v3.39.0)
(2025-12-12)
### Features
* adds support for Python runtime 3.14 (#2322)
([6065e14](6065e14c))
* Add ExternalRuntimeOptions to BigQuery routine (#2311)
([fa76e31](fa76e310))
### Bug Fixes
* remove ambiguous error codes from query retries (#2308)
([8bbd3d0](8bbd3d01))
* include `io.Base` in the `PathType` (#2323)
([b11e09c](b11e09cb))
* honor custom `retry` in `job.result()` (#2302)
([e118b02](e118b029))
### Documentation
* remove experimental annotations from GA features (#2303)
([1f1f9d4](1f1f9d41))
</details>
Co-authored-by: Daniel Sanche <d.sanche14@gmail.com>
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

api: bigqueryIssues related to the googleapis/python-bigquery API.size: sPull request size is small.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@chalmerlowe@vchudnov-g@shollyman@mrfaizal@daniel-sanche@yoshi-kokoro