Skip to content

feat(sqlalchemy-bigquery): Drop support for Python 3.7, 3.8, and 3.9#16956

Open
chalmerlowe wants to merge 11 commits intomainfrom
feat/drop-python-3.7-3.9-sqlalchemy-bigquery
Open

feat(sqlalchemy-bigquery): Drop support for Python 3.7, 3.8, and 3.9#16956
chalmerlowe wants to merge 11 commits intomainfrom
feat/drop-python-3.7-3.9-sqlalchemy-bigquery

Conversation

@chalmerlowe
Copy link
Copy Markdown
Contributor

This PR updates `sqlalchemy-bigquery` to establish Python 3.10 as the minimum supported version, dropping support for Python 3.7, 3.8, and 3.9.

Changes

  • Configuration: Updated `setup.py` and `noxfile.py` to require Python 3.10+ and remove references to Python 3.8 and 3.9.
  • Documentation: Updated `README.rst` and `CONTRIBUTING.rst` to reflect supported Python versions (up to 3.14).
  • Constraints: Transferred lower bounds to `constraints-3.10.txt` and dropped `constraints-3.8.txt` and `constraints-3.9.txt`.
  • Fixes: Bumped `pyarrow` to `6.0.0` and pinned `alembic==1.7.7` to fix Python 3.10 compatibility issues.

Verified successfully with 318 passing unit tests under Python 3.10!

Fixes internal issue: http://b/482126936 🦕

@chalmerlowe chalmerlowe requested review from a team as code owners May 5, 2026 20:13
@chalmerlowe chalmerlowe requested review from TrevorBergeron and removed request for a team May 5, 2026 20:13
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a 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.8 and 3.9, updating documentation, CI configurations, and package metadata to set the minimum supported version to Python 3.10. Additionally, the minimum version for pyarrow is increased to 6.0.0, and a new constraints file for Python 3.10 is added while older versions are removed. Review feedback suggests including missing Trove classifiers for Python 3.13 and 3.14 in setup.py and clarifying the dependency status of alembic, which is currently pinned in the constraints file but missing from the package configuration.

Comment on lines 104 to 106
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The Trove classifiers are missing entries for Python 3.13 and 3.14, which are stated as supported in the documentation and noxfile.py. According to the general rules, project metadata should be updated to reflect the supported versions when updating the minimum Python version.

Suggested change
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
References
  1. When updating the minimum supported Python version in runtime checks, ensure that the project's metadata in 'setup.py' or 'pyproject.toml' is also updated to reflect the same minimum version in 'python_requires' and Trove classifiers.

Comment thread packages/sqlalchemy-bigquery/testing/constraints-3.10.txt
@chalmerlowe chalmerlowe added this to the Drop support for 3.7-3.9 milestone May 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant