#36005 closed Cleanup/optimization (fixed)
Drop support for Python 3.10 & 3.11.
Reported by: | Sarah Boyce | Owned by: | Mariusz Felisiak |
---|---|---|---|
Component: | Core (Other) | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Ready for checkin | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
If I understood the process correctly then Django 5.2 LTS, supported until April 2028, is the last version to support:
- Python 3.10 (end of life: October 2026)
- Python 3.11 (end of life: October 2027)
See our policy about Python version support and discussions regarding the Python version support policy:
Change History (13)
comment:1 by , 2 months ago
comment:2 by , 2 months ago
Triage Stage: | Unreviewed → Someday/Maybe |
---|
That's correct. The policy is also documented in the FAQ:
Typically, we will support a Python version up to and including the first Django LTS release whose security support ends after security support for that version of Python ends. For example, Python 3.9 security support ends in October 2025 and Django 4.2 LTS security support ends in April 2026. Therefore Django 4.2 is the last version to support Python 3.9.
comment:3 by , 2 months ago
I cannot refrain from voicing my traditional rant :-) Django 6.0 lifetime is entirely inside the Python 3.11 lifetime, so I don't see the point in dropping support in that case. I know, I know, it's not the policy...
comment:4 by , 2 months ago
I’ll just add that I’ve shared Claude’s concerns. (See those two threads)
Tim was very patient in running me around the playground, thinking through the issues there.
Particularly the second thread I found convincing.
It’s difficult to see how or when we could adjust dropping the older versions
(With Python now having 5 live versions with the annual release cycle the CI and support matrix is already extensive. I’m sceptical about extending it further.)
I think one problem is we always have this conversation at this point in the cycle, where if we are going to change it we should probably discuss it at the start of the cycle in order to have time to talk it through. (So if we want to think about it for 7.x we should discuss again after/around 6.0)
comment:6 by , 6 weeks ago
Owner: | set to |
---|---|
Status: | new → assigned |
comment:7 by , 5 weeks ago
Triage Stage: | Someday/Maybe → Accepted |
---|
comment:8 by , 5 weeks ago
Patch needs improvement: | set |
---|
Looks like pypy is working on 3.11 support and so I don't suppose it will support 3.12 "shortly".
We have a statement that we are compatible with pypy, which will no longer be the case once 3.10 is dropped (ref #34986).
I think we should drop pypy support as part of the work for this ticket
comment:9 by , 5 weeks ago
Patch needs improvement: | unset |
---|
comment:10 by , 5 weeks ago
Triage Stage: | Accepted → Ready for checkin |
---|
This ticket should be "Someday/Maybe" until we start working on Django 6.0.