Skip to content

Deprecate and remove support for Python 3.10 #154

@Kilo59

Description

@Kilo59

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions