The template currently sets requires-python = ">=3.10" in the generated pyproject.toml (and python_version = "3.10" in [tool.mypy] / py-version = "3.10" in [tool.pylint]).
Per SPEC 0, Python 3.10 reached its recommended drop date in Q4 2024 and Python 3.11 in Q4 2025. As of today (Q2 2026), the SPEC 0-compliant minimum is Python 3.12 (released Oct 2023, drop date Q4 2026).
I understand from #537 that the template intentionally sets a conservative floor and projects are expected to raise it themselves. However, the current default is now two minor versions behind the ecosystem recommendation, which may give new projects a false sense that >=3.10 is still appropriate.
Proposal:
- Bump the generated
requires-python to >=3.12
- Update
python_version in [tool.mypy] and py-version in [tool.pylint] accordingly
- Update the classifiers list to start from
3.12
- Update the CI matrix lower bound from
"3.11" to "3.12"
Alternatively, consider a periodic update policy (e.g. bump each time a new cookie release is tagged) to keep the default aligned with SPEC 0.
The template currently sets
requires-python = ">=3.10"in the generatedpyproject.toml(andpython_version = "3.10"in[tool.mypy]/py-version = "3.10"in[tool.pylint]).Per SPEC 0, Python 3.10 reached its recommended drop date in Q4 2024 and Python 3.11 in Q4 2025. As of today (Q2 2026), the SPEC 0-compliant minimum is Python 3.12 (released Oct 2023, drop date Q4 2026).
I understand from #537 that the template intentionally sets a conservative floor and projects are expected to raise it themselves. However, the current default is now two minor versions behind the ecosystem recommendation, which may give new projects a false sense that
>=3.10is still appropriate.Proposal:
requires-pythonto>=3.12python_versionin[tool.mypy]andpy-versionin[tool.pylint]accordingly3.12"3.11"to"3.12"Alternatively, consider a periodic update policy (e.g. bump each time a new cookie release is tagged) to keep the default aligned with SPEC 0.