Opened 2 months ago

Closed 5 weeks ago

Last modified 5 days ago

#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 Sarah Boyce, 2 months ago

This ticket should be "Someday/Maybe" until we start working on Django 6.0.

comment:2 by Tim Graham, 2 months ago

Triage Stage: UnreviewedSomeday/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 Claude Paroz, 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 Carlton Gibson, 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:5 by Vitaly Sem, 7 weeks ago

I think there is no reason to drop support python versions.

comment:6 by Sarah Boyce, 6 weeks ago

Owner: set to Mariusz Felisiak
Status: newassigned

comment:7 by Sarah Boyce, 5 weeks ago

Triage Stage: Someday/MaybeAccepted

comment:8 by Sarah Boyce, 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 Mariusz Felisiak, 5 weeks ago

Patch needs improvement: unset

comment:10 by Sarah Boyce, 5 weeks ago

Triage Stage: AcceptedReady for checkin

comment:11 by Sarah Boyce <42296566+sarahboyce@…>, 5 weeks ago

Resolution: fixed
Status: assignedclosed

In f5772de6:

Fixed #36005 -- Dropped support for Python 3.10 and 3.11.

comment:12 by GitHub <noreply@…>, 4 weeks ago

In d9af197:

Refs #36005 -- Bumped minimum supported versions of 3rd-party packages.

This bumps minimum supported versions of 3rd-party packages to the first
releases to support Python 3.12.

comment:13 by GitHub <noreply@…>, 5 days ago

In efb7f9c:

Refs #36005 -- Used datetime.UTC alias instead of datetime.timezone.utc.

datetime.UTC was added in Python 3.11.

Note: See TracTickets for help on using tickets.
Back to Top