Opened 2 years ago

Closed 2 years ago

Last modified 18 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
Pull Requests:17323, 17225 merged, 17153 merged, 17013 merged, 16964 merged, 16480 merged, 16481 merged, 16475 merged, 16478 merged, 16476 merged, 16467 merged

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, 2 years ago

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

comment:2 by Jacob Walls, 2 years ago

Triage Stage: UnreviewedSomeday/Maybe

comment:3 by Mariusz Felisiak, 2 years ago

Has patch: set

comment:4 by GitHub <noreply@…>, 2 years ago

Resolution: fixed
Status: assignedclosed

In 3bbe22da:

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

comment:5 by GitHub <noreply@…>, 2 years 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@…>, 2 years ago

In 26a395f:

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

Available since Python 3.10.

comment:7 by GitHub <noreply@…>, 2 years ago

In fd21f82a:

Refs #34233 -- Used types.NoneType.

Available since Python 3.10 where it was reintroduced.

comment:8 by GitHub <noreply@…>, 2 years ago

In 23e88688:

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

comment:9 by GitHub <noreply@…>, 2 years 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@…>, 21 months ago

In e9bd5b48:

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

comment:11 by GitHub <noreply@…>, 21 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@…>, 19 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@…>, 18 months ago

In 6c6606aa:

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

comment:14 by Mariusz Felisiak <felisiak.mariusz@…>, 18 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