GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — fix(google-crc32c): drop Python 3.10 and remove it from build tooling by Su-001 · Pull Request #19034 · googleapis/google-cloud-python

Conversation

@Su-001

@Su-001 Su-001 commented Nov 10, 2026

Copy link
Copy Markdown

Part of #18972

Follows up on #18971, which worked around the old pyreadline in the Windows build image's pre-installed Python 3.10 but kept 3.10 in the build. This PR stops the crc32c build from using 3.10 and moves tooling jobs off it.

Changes

google-crc32c: end support for Python 3.10

  • Removes 3.10.11 from scripts/python_versions.yaml, so the Windows, macOS and Linux builds no longer build 3.10 wheels. The first listed version, now 3.11, is also what the py -3 and macOS publish steps use.
  • Raises the minimum to Python 3.11 in setup.cfg and pyproject.toml, and updates the classifiers, README.md and mypy.ini to match.
  • Keeps unit-3.10 as a session that skips itself, because the shared CI matrix still runs it for every package. This matches how fix: drop support for end-of-life Python 3.10 #19015 handled pandas-gbq.

Tooling that doesn't need 3.10

  • unittest.yml: the shard and coverage report jobs now use Python 3.14.
  • main.yml: corrects a step named "Set up Python 3.10" that already installed 3.15.
  • crc32c test.bat: the fallback version for manual runs is now 3.14.
  • The skip-only docs and docfx sessions in google-crc32c and gcp-sphinx-docfx-yaml now use 3.15, which docs.yml installs.

For reviewers: this ends 3.10 support for crc32c

With python_requires raised, pip on Python 3.10 will install the last compatible crc32c release, so existing users keep a working install but get no new versions. Other libraries in this repo depend on crc32c and still support 3.10. Please let me know if you'd rather keep 3.10 wheels for now, and I'll limit this to the tooling changes.

Testing

Run locally on Windows:

Check Result
crc32c unit-3.10 Skips
crc32c unit-3.11, unit-3.15 89 passed, 99 skipped, 100% coverage
docs and docfx in both packages Skip on 3.15
crc32c mypy, and ruff on noxfile.py Pass
Resolving crc32c on Python 3.10 / 3.11 Refused on 3.10, resolves on 3.11
Shard script on Python 3.14 Runs
Coverage data written on 3.10, reported on 3.14 Combines and reports

The unit tests above use the pure-Python mode. The Kokoro wheel builds for Windows, macOS and Linux couldn't be run locally, so those need checking on this PR.

Not in this PR

Most docs and docfx nox sessions (about 300 files, plus the generator template and goldens) remain on Python 3.10, so docs.yml still installs it. I tested google-apps-card and found:

  • Python 3.12 is the newest version that works, because Sphinx 4.5.0 needs the imghdr module removed in 3.13.
  • On 3.11 and later, docfx output changes for enums, from Interaction(value) to a signature exposing Enum internals, such as Interaction(value, names=<not given>, *values, module=None, ...). That needs a fix in gcp-sphinx-docfx-yaml before those sessions move.

The unit test matrices and "oldest Python" jobs also stay on 3.10 while packages still declare support for it.

  • Make sure to open an issue as a bug/issue before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea
  • Ensure the tests and linter pass
  • Code coverage does not decrease (if any source code was changed)
  • Appropriate docs were updated (if necessary)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

gemini-code-assist[bot] reacted with eyes emoji
All reactions
  • 👀 1 reaction
@Su-001
fix(google-crc32c): drop Python 3.10 and remove it from build tooling
4d7b057
Stop building google-crc32c wheels for Python 3.10 and require Python
3.11 or later, since 3.10 is end-of-life and the pre-installed copy on
the Windows build image breaks newer pip. Keep the unit-3.10 nox session
as a skip because the shared CI matrix still runs it for every package.

Move the skip-only docs and docfx sessions in google-crc32c and
gcp-sphinx-docfx-yaml to Python 3.15, and move the shard and coverage
jobs in unittest.yml to Python 3.14.

Part of googleapis#18972
@Su-001
Su-001 requested a review from a team as a code owner November 10, 2026 11:23
gemini-code-assist[bot]
gemini-code-assist Bot reviewed Nov 10, 2026
View reviewed changes

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Code Review

This pull request drops support for Python 3.10 across several packages, updating the minimum required Python version to 3.11. This includes updating configuration files (pyproject.toml, setup.cfg, mypy.ini), documentation, and CI/testing setups (noxfile.py, test.bat). A review comment suggests changing the fallback Python version in the Windows test script (test.bat) from 3.14 to 3.11 to avoid potential failures for developers who do not have pre-release versions of Python installed.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread packages/google-crc32c/scripts/windows/test.bat Resolved

Uh oh!

There was an error while loading. Please reload this page.

@Su-001
ci(google-crc32c): use Python 3.11 as the test.bat fallback
1dfbe56
@parthea parthea added kokoro:run Add this label to force Kokoro to re-run the tests. kokoro:force-run Add this label to force Kokoro to re-run the tests. labels Nov 11, 2026
@yoshi-kokoro yoshi-kokoro removed kokoro:run Add this label to force Kokoro to re-run the tests. kokoro:force-run Add this label to force Kokoro to re-run the tests. labels Nov 11, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

1 more reviewer
@gemini-code-assist gemini-code-assist[bot] gemini-code-assist[bot] left review comments
Reviewers whose approvals may not affect merge requirements

At least 1 approving review is required to merge this pull request.

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@Su-001 @parthea @yoshi-kokoro
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.