Merged
Conversation
- Drop Python 3.10 support - Add Python 3.14 support
for more information, see https://pre-commit.ci
…remove-python3.10
- Support for Python 3.14 needs a separate PR
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #1034 +/- ##
===========================================
- Coverage 99.88% 99.88% -0.01%
===========================================
Files 85 85
Lines 11568 11567 -1
Branches 1510 1510
===========================================
- Hits 11555 11554 -1
Misses 6 6
Partials 7 7 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Contributor
There was a problem hiding this comment.
Pull request overview
This PR removes Python 3.10 support across TIAToolbox’s packaging metadata, CI/tooling configuration, and documentation, and updates code to use Python 3.11+ standard-library typing/timezone features.
Changes:
- Bump minimum supported Python to 3.11 (setup metadata, Ruff target-version, mypy python_version, conda env specs).
- Update CI matrices and Docker publishing to stop building/testing Python 3.10.
- Modernize typing/timezone usage for 3.11+ (e.g.,
typing.Self,datetime.UTC) and update related tests/docs.
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
tiatoolbox/wsicore/wsireader.py |
Switch to datetime.UTC and update related timezone-aware parsing. |
tiatoolbox/annotation/storage.py |
Replace typing_extensions.Self with stdlib typing.Self. |
tests/test_annotation_stores.py |
Update Python compatibility test naming/target version. |
setup.py |
Set python_requires >=3.11 and drop Python 3.10 classifier. |
requirements/requirements.win64.dev.conda.yml |
Require Python >=3.11 in Windows dev conda env. |
requirements/requirements.win64.conda.yml |
Require Python >=3.11 in Windows prod conda env. |
requirements/requirements.dev.conda.yml |
Require Python >=3.11 in dev conda env. |
requirements/requirements.conda.yml |
Require Python >=3.11 in prod conda env. |
pyproject.toml |
Update Ruff target-version and mypy python_version to 3.11. |
docs/installation.rst |
Update supported Python versions text. |
docker/3.10/Ubuntu/Dockerfile |
Remove Python 3.10 Ubuntu Docker image definition. |
docker/3.10/Debian/Dockerfile |
Remove Python 3.10 Debian Docker image definition. |
README.md |
Update example conda env creation to Python 3.11. |
CONTRIBUTING.rst |
Update contributor guidance to supported Python versions. |
.github/workflows/python-package.yml |
Remove 3.10 from test matrix; update release job to 3.11. |
.github/workflows/pip-install.yml |
Remove 3.10 from pip-install validation matrix. |
.github/workflows/mypy-type-check.yml |
Remove 3.10 from mypy workflow matrix. |
.github/workflows/docker-publish.yml |
Stop publishing 3.10 Docker image tags. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR removes Python 3.10 support across TIAToolbox and updates code, tooling, and documentation to reflect Python 3.11+ as the new minimum supported version. This aligns the project with modern Python typing, timezone features, and the upstream ecosystem’s deprecation trajectory.
✅ Summary of Changes
Packaging & Tooling
setup.py(python_requires)pyproject.toml(Rufftarget-version& mypypython_version)python-package,mypy-type-check,pip-install)Docker Images
Code Modernization
typing_extensions.Self→ stdlibtyping.Self.timezone.utc→datetime.UTC(Python 3.11+).test_py310_init→test_py311_init).Documentation
docs/installation.rstCONTRIBUTING.rstREADME.md(example env creation now uses Python 3.11)🔍 Reviewed Changes
Copilot reviewed 18 out of 18 modified files and produced 2 comments.
Summary per file
tiatoolbox/wsicore/wsireader.pydatetime.UTCand update timezone handling.tiatoolbox/annotation/storage.pytyping_extensions.Selfwith stdlibtyping.Self.tests/test_annotation_stores.pysetup.pypython_requires >= 3.11and drop 3.10 classifier.requirements/*.conda.ymlpyproject.tomldocs/installation.rstdocker/3.10/*README.mdCONTRIBUTING.rst.github/workflows/*