feat(sqlalchemy-bigquery): Drop support for Python 3.7, 3.8, and 3.9#16956
feat(sqlalchemy-bigquery): Drop support for Python 3.7, 3.8, and 3.9#16956chalmerlowe wants to merge 10 commits intomainfrom
Conversation
…rrow to constraints-3.10.txt
There was a problem hiding this comment.
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.
| "Programming Language :: Python :: 3.10", | ||
| "Programming Language :: Python :: 3.11", | ||
| "Programming Language :: Python :: 3.12", |
There was a problem hiding this comment.
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.
| "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
- 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.
| google-api-core==2.11.1 | ||
| grpcio==1.47.0 | ||
| numpy==1.26.4 | ||
| alembic==1.7.7 |
There was a problem hiding this comment.
alembic is pinned here to fix Python 3.10 compatibility issues, but it is not listed as a dependency in setup.py. The header of this file states it should list all library dependencies and extras. If alembic is required for compatibility (even for tests), it should be added to setup.py (e.g., in tests_require or an extra) to ensure users and CI environments are correctly configured.
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
Verified successfully with 318 passing unit tests under Python 3.10!
Fixes internal issue: http://b/482126936 🦕