Skip to content

chore: stop support py3.9, now support py3.10-3.15#182

Merged
mdevolde merged 1 commit into
jxmorris12:masterfrom
mdevolde:chore/py_versions
Jun 11, 2026
Merged

chore: stop support py3.9, now support py3.10-3.15#182
mdevolde merged 1 commit into
jxmorris12:masterfrom
mdevolde:chore/py_versions

Conversation

@mdevolde

@mdevolde mdevolde commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

chore: stop support py3.9, now support py3.10-3.15

Why the pull request was made

To follow python releases and stop supporting python 3.9 as it is an EOL version since 2025, and it represents around 1.5% of the lib downloads.
By upgrading the minimum python version to 3.10, we ensure that our library can use the most recent versions of each dependencies, and of the type checker, mypy, that doesn't support anymore python 3.9 since it's v2.

Summary of changes

  • Upgrade minimum version of language_tool_python to 3.10 (and edited lib classifiers).
  • Remove testing for python 3.9 and added testing for python 3.15.
  • Remove import of TypeGuard from typing_extensions (can be imported from typing since python 3.10).
  • Remove last Union usages (since python 3.10 fully support | operator for typing).
  • Edit docs to support these changes.
  • Upgrade uv.lock to remove old constraints due to python 3.9.

Screenshots (if appropriate):

Not appropriate.

How has this been tested?

Applied local tests (including with python 3.15).

Resources

Python releases: https://www.python.org/downloads/

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update (changes to documentation only)
  • Refactor / code style update (non-breaking change that improves code structure or readability)
  • Tests / CI improvement (adding or updating tests or CI configuration only)
  • Other (please describe):

Checklist

  • Followed the project's contributing guidelines.
  • Updated any relevant tests.
  • Updated any relevant documentation.
  • Added comments to your code where necessary.
  • Formatted your code, run the linters, checked types and tests.

Copilot AI left a comment

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.

Pull request overview

This PR updates language_tool_python to drop Python 3.9 support (now EOL) and set Python 3.10 as the minimum supported version, aligning packaging metadata, CI, and internal typing/compat code accordingly.

Changes:

  • Bump minimum supported Python to >=3.10 across packaging metadata and documentation.
  • Update CI matrix to stop testing Python 3.9 and add Python 3.15 on Ubuntu.
  • Simplify typing/compat code by removing Python 3.9-era Union/typing_extensions.TypeGuard workarounds and adjusting lockfile markers.

Reviewed changes

Copilot reviewed 9 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
uv.lock Updates lock metadata/markers for >=3.10 and removes Python 3.9-era conditional packages/markers.
README.md Updates stated supported/tested Python versions to >=3.10 / up to 3.15.
pyproject.toml Sets requires-python = ">=3.10", updates classifiers, and simplifies mypy dependency marker.
Makefile Removes runtime Python version gating for mypy; (contains a small recipe formatting issue).
make.bat Removes runtime Python version gating for mypy on Windows batch script.
language_tool_python/match.py Replaces Union[...] with `
language_tool_python/config_file.py Replaces Union[...] with `
language_tool_python/api_types.py Switches TypeGuard import to typing.TypeGuard for 3.10+.
language_tool_python/_compat.py Removes TypeGuard compatibility export; keeps deprecated and toml_loads.
.github/workflows/test.yml Removes Python 3.9 from matrix and adds Python 3.15 on Ubuntu.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Makefile Outdated
@mdevolde mdevolde force-pushed the chore/py_versions branch from 031357b to bd12c19 Compare June 11, 2026 13:36
@mdevolde mdevolde merged commit 842a9e4 into jxmorris12:master Jun 11, 2026
10 checks passed
@mdevolde mdevolde deleted the chore/py_versions branch June 11, 2026 13:41
@mdevolde mdevolde mentioned this pull request Jun 11, 2026
12 tasks
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.

2 participants