chore!: bump minimum Python version to 3.11#81
Conversation
BREAKING CHANGE: Drop support for Python 3.9 and 3.10. This change: - Updates requires-python from >=3.9 to >=3.11 - Removes Python 3.9 and 3.10 from CI matrix and classifiers - Removes eval-type-backport dependency (only needed for Python <3.10) - Removes python_version conditions from mcp and crewai dependencies - Updates ruff target-version from py39 to py311 - Updates README requirements section Python 3.11 is now the minimum supported version, allowing the use of modern typing features and simplifying dependency management.
Regenerate uv.lock after removing eval-type-backport and updating python_version conditions in optional dependencies.
There was a problem hiding this comment.
Pull request overview
This PR drops support for Python 3.9 and 3.10, establishing Python 3.11 as the new minimum supported version. This simplifies dependency management by removing version-conditional dependencies and enables the use of modern Python features.
Key Changes:
- Updated minimum Python version from 3.9 to 3.11 across all configuration files
- Removed version-conditional dependencies (
eval-type-backport, conditionalmcpandcrewai) - Updated CI matrix to test Python 3.11 and 3.13 (previously 3.9, 3.10, 3.13)
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| pyproject.toml | Updated requires-python to >=3.11, removed Python 3.9/3.10 classifiers, removed eval-type-backport dependency and version conditionals from optional dependencies, updated ruff target to py311 |
| README.md | Updated requirements to Python 3.11+, removed Python 3.10+ notes from CrewAI integration section |
| .github/workflows/ci.yaml | Updated CI matrix to test Python 3.11 and 3.13, removed Python 3.9 and 3.10 from matrix |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| python-version: ["3.11", "3.13"] | ||
| include: | ||
| - python-version: "3.9" | ||
| sync-extras: "--all-extras --no-extra mcp" | ||
| - python-version: "3.10" | ||
| - python-version: "3.11" | ||
| sync-extras: "--all-extras" | ||
| - python-version: "3.13" | ||
| sync-extras: "--all-extras" |
There was a problem hiding this comment.
The CI matrix tests Python 3.11 and 3.13, but skips Python 3.12. This is unusual and might be unintentional. Consider adding Python 3.12 to the matrix to ensure compatibility with all supported versions listed in the project classifiers (3.11, 3.12, 3.13).
Ruff B905 rule requires explicit strict= parameter for zip() when targeting Python 3.11+. Using strict=True ensures both iterables have the same length, which is the expected behaviour in these cases.
- Import TypeAlias from typing instead of typing_extensions - Use datetime.UTC instead of datetime.timezone.utc - Remove obsolete TODO comments about Python 3.9 support
Summary
Drop support for Python 3.9 and 3.10, making Python 3.11 the minimum supported version.
pydantic suport 3.11 or above now
What Changed
requires-pythonfrom>=3.9to>=3.11eval-type-backportdependency (only needed for Python <3.10)python_versionconditions frommcpandcrewaioptional dependenciestarget-versionfrompy39topy311Why
Python 3.11 provides modern typing features and better performance. This simplifies dependency management by removing version-conditional dependencies and allows the codebase to use Python 3.11+ features without backports.
BREAKING CHANGE: Python 3.9 and 3.10 are no longer supported.
Summary by cubic
Set Python 3.11 as the minimum supported version and drop Python 3.9/3.10. This is a breaking change that simplifies dependencies and enables 3.11 features.
Dependencies
Migration
Written for commit 23a75e9. Summary will update automatically on new commits.