Python 3.10 is scheduled to reach its end-of-life (EOL) on October 4, 2026.
To ensure ruff-sync remains modern and maintainable, we should plan to drop support for Python 3.10 shortly before or on its EOL date.
Impacted Areas:
pyproject.toml (requires-python, classifiers)
CI workflows (matrix tests)
src/ruff_sync/ shims if any.
tool.ruff.target-version and tool.mypy.python_version in pyproject.toml
Future Opportunities (Python 3.11+):
- Type Parameter Syntax (PEP 695): Use cleaner generic definitions (
def find[T](items: list[T])) instead of verbose TypeVar declarations.
typing.override: Enforce method overrides in our polymorphic AST (ConfigNode), preventing silent regressions.
typing.Self: Simplify return type hints for methods that return an instance of their own class.
ExceptionGroup & Except Group: Better handling of concurrent failures if we move toward multi-repo parallel sync.
asyncio.TaskGroup: More robust management of concurrent async operations.
- F-string Improvements: Nested quotes inside f-strings will simplify some of our TOML string generation logic.
Patterns to Stop Using:
TypeVar Boilerplate: Can be removed in favor of 3.12 inline generics.
from __future__ import annotations: While currently enforced by our style, we can revisit its necessity for post-3.10 environments (though still useful for performance).
- Manual
cast for certain narrowing: Continue shifting toward 3.12/3.13's better type-narrowing capabilities.
Target Date:
Support should be officially dropped by September 2026.
Reference: https://endoflife.date/python
Python 3.10 is scheduled to reach its end-of-life (EOL) on October 4, 2026.
To ensure
ruff-syncremains modern and maintainable, we should plan to drop support for Python 3.10 shortly before or on its EOL date.Impacted Areas:
pyproject.toml(requires-python,classifiers)CIworkflows (matrix tests)src/ruff_sync/shims if any.tool.ruff.target-versionandtool.mypy.python_versioninpyproject.tomlFuture Opportunities (Python 3.11+):
def find[T](items: list[T])) instead of verboseTypeVardeclarations.typing.override: Enforce method overrides in our polymorphic AST (ConfigNode), preventing silent regressions.typing.Self: Simplify return type hints for methods that return an instance of their own class.ExceptionGroup&Except Group: Better handling of concurrent failures if we move toward multi-repo parallel sync.asyncio.TaskGroup: More robust management of concurrent async operations.Patterns to Stop Using:
TypeVarBoilerplate: Can be removed in favor of 3.12 inline generics.from __future__ import annotations: While currently enforced by our style, we can revisit its necessity for post-3.10 environments (though still useful for performance).castfor certain narrowing: Continue shifting toward 3.12/3.13's better type-narrowing capabilities.Target Date:
Support should be officially dropped by September 2026.
Reference: https://endoflife.date/python