Repository navigation
Drop support for Python 3.10 (EOL) - #1164
Merged
Merged
Conversation
Propagation of zostera/django-marina#691, where the reasoning lives. Python 3.10 reached end of life on 2026-10-01. MAINTAINING.md says to drop a cycle as soon as it goes EOL, so this takes it out of tox.ini, the CI matrix and the classifiers, and raises requires-python to >=3.11. Breaking for anyone still on 3.10: they keep resolving to the last release. Raising the floor moved docs/conf.py. Ruff infers its isort target from requires-python, and tomllib arrived in 3.11, so at >=3.10 it sorted as a non-stdlib import in its own block and at >=3.11 it joins the stdlib block, where a plain import sorts above a from import. That is just format output. Python 3.15 stays non-blocking and out of the classifiers, but the comments calling it a release candidate are now wrong. What holds it back is Django, which still stops at 3.14 in 5.2, 6.0 and 6.1. MAINTAINING.md gains that case. uv.lock regenerated. tox.ini and ci.yml stay byte-identical to django-marina, bar the documented per-package exceptions. Verified: just lint, just build and just test-cov at 100%. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Propagation of zostera/django-marina#691, where the reasoning lives.
Python 3.10 reached end of life on 2026-10-01. MAINTAINING.md says to drop a cycle as soon as it goes EOL rather than wait for a scheduled release, so this takes it out of
tox.ini, the CI matrix and the classifiers, and raisesrequires-pythonto>=3.11. Breaking for anyone still on 3.10, who will keep resolving to the last release.One surprise worth reviewing. Raising the floor reordered the imports in
docs/conf.py. Ruff infers its isort target fromrequires-python, andtomllibarrived in 3.11, so at>=3.10it was treated as a non-stdlib import in its own block, while at>=3.11it joins the stdlib block, where a plainimportsorts above afromimport. That hunk isjust formatoutput, not a judgement call, and all five packages have the same two lines.Python 3.15 does not change state. It stays non-blocking and out of the classifiers, but the comments calling it a release candidate are now wrong, since 3.15.0 shipped. What holds it back is Django rather than CPython: 5.2, 6.0 and 6.1 all still stop at 3.14. MAINTAINING.md gains that case, which the pre-release bullet did not cover.
uv.lockis regenerated, losing the 3.10 resolution markers and the sphinx pin that existed only for 3.10.tox.iniandci.ymlare byte-identical to django-marina after this, bar the per-package exceptions PACKAGING.md documents.Verified with
just lint,just buildandjust test-covat 100%.🤖 Generated with Claude Code