Opened 17 months ago

Closed 16 months ago

Last modified 8 months ago

#34233 closed Cleanup/optimization (fixed)

Drop support for Python 3.8 & 3.9.

Reported by: Mariusz Felisiak Owned by: Mariusz Felisiak
Component: Core (Other) Version: dev
Severity: Normal Keywords:
Cc: Carlton Gibson Triage Stage: Someday/Maybe
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Django 4.2 LTS, supported until April 2026, is the last version to support:

  • Python 3.8 (end of life: October 2024)
  • Python 3.9 (end of life: October 2025)

See our policy about Python version support and discussions regarding the Python version support policy:

Change History (14)

comment:1 by Mariusz Felisiak, 17 months ago

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

comment:2 by Jacob Walls, 17 months ago

Triage Stage: UnreviewedSomeday/Maybe

comment:3 by Mariusz Felisiak, 16 months ago

Has patch: set

comment:4 by GitHub <noreply@…>, 16 months ago

Resolution: fixed
Status: assignedclosed

In 3bbe22da:

Fixed #34233 -- Dropped support for Python 3.8 and 3.9.

comment:5 by GitHub <noreply@…>, 16 months ago

In a045658:

Refs #34233 -- Referenced isocalendar() results by names not indexes.

isocalendar() returns a namedtuple() instead of tuple in Python 3.9+

comment:6 by GitHub <noreply@…>, 16 months ago

In 26a395f:

Refs #34233 -- Used aiter() and anext().

Available since Python 3.10.

comment:7 by GitHub <noreply@…>, 16 months ago

In fd21f82a:

Refs #34233 -- Used types.NoneType.

Available since Python 3.10 where it was reintroduced.

comment:8 by GitHub <noreply@…>, 16 months ago

In 23e88688:

Refs #34233 -- Used str.removeprefix()/removesuffix().

comment:9 by GitHub <noreply@…>, 16 months ago

In 4470c24:

Refs #34233 -- Used @functools.cache.

Python 3.9+ supports @functools.cache as an alias for
@functools.lru_cache(maxsize=None).

comment:10 by GitHub <noreply@…>, 11 months ago

In e9bd5b48:

Refs #34233 -- Updated black target-version to Python 3.10.

comment:11 by GitHub <noreply@…>, 11 months ago

In 370a0217:

Refs #34233 -- Bumped minimum supported version of Selenium to 4.8.0.

This bumps minimum supported versions of selenium to the first release
to support Python 3.10.

comment:12 by GitHub <noreply@…>, 9 months ago

In 80a5667c:

Refs #34233 -- Bumped required cx_Oracle to 8.3.

This bumps minimum supported versions of cx_Oracle to the first release
to support Python 3.10.

comment:13 by Mariusz Felisiak <felisiak.mariusz@…>, 9 months ago

In 6c6606aa:

Refs #34233 -- Bumped minimum supported version of docutils to 0.19.

comment:14 by Mariusz Felisiak <felisiak.mariusz@…>, 8 months ago

In 170b0a47:

Refs #34233 -- Used @staticmethod with TextChoices._generate_next_value_().

Now that Python 3.10 is the minimum supported version, we can decorate
_generate_next_value_() with @staticmethod. It wasn't possible before
as Python < 3.10 does not support calling static methods direct from
the class body.

https://docs.python.org/3/library/enum.html#enum.Enum._generate_next_value_

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