Skip to content

Conversation

@ryoppippi
Copy link
Member

@ryoppippi ryoppippi commented Dec 29, 2025

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

  • Updated requires-python from >=3.9 to >=3.11
  • Removed Python 3.9 and 3.10 from CI matrix and classifiers
  • Removed eval-type-backport dependency (only needed for Python <3.10)
  • Removed python_version conditions from mcp and crewai optional dependencies
  • Updated ruff target-version from py39 to py311
  • Updated README requirements section

Why

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

    • Updated requires-python to >=3.11; removed 3.9/3.10 from CI matrix and classifiers.
    • Removed eval-type-backport; dropped python_version conditions for mcp and crewai extras.
    • Set ruff target-version to py311; updated README requirements.
    • Added strict=True to zip() calls to satisfy ruff B905 for Python 3.11.
  • Migration

    • Upgrade local and CI environments to Python 3.11+.

Written for commit 23a75e9. Summary will update automatically on new commits.

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.
Copilot AI review requested due to automatic review settings December 29, 2025 09:44
Regenerate uv.lock after removing eval-type-backport and updating
python_version conditions in optional dependencies.
Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 3 files

Copy link
Contributor

Copilot AI left a comment

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 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, conditional mcp and crewai)
  • 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.

Comment on lines +37 to 42
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"
Copy link

Copilot AI Dec 29, 2025

Choose a reason for hiding this comment

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

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).

Copilot uses AI. Check for mistakes.
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
@ryoppippi ryoppippi enabled auto-merge (squash) December 29, 2025 09:53
Copy link
Contributor

@glebedel glebedel left a comment

Choose a reason for hiding this comment

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

LGTM

@ryoppippi ryoppippi merged commit 527e828 into main Dec 29, 2025
11 checks passed
@ryoppippi ryoppippi deleted the chore/bump-minimum-python-version-to-3.11 branch December 29, 2025 10:28
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.

3 participants