Hi all. The Python version support policy reads [0]: "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.3 security support ends September 2017 and Django 1.8 LTS security support ends April 2018. Therefore Django 1.8 is the last version to support Python 3.3."
Updating that to current numbers we have: Python EOL [1] 3.6 2021-12-23 3.7 2023-06-27 3.8 2024-10 3.9 2025-10 Compared with the next two LTS versions for Django Django EOL [2] 3.2 2024-04 4.2 2026-04 By my reckoning this makes Django 3.2 "the first Django LTS release whose security support ends after security support for that version of Python ends" for *both *Python 3.6 and Python 3.7. Thus on the current policy we should drop support for *both *Python 3.6 and Python 3.7 when we branch Django 3.2 — i.e. for Django 4.0. I'm not sure what I think about that. I started writing this thinking just about Python 3.6 — and then I looked up the dates. I think we *should* drop Python 3.6 at this time. asyncio is still evolving and there are API changes between 3.6 and 3.7 that I think we need to get the other side of. I think though that dropping support for Python 3.7 would be a *little aggressive *— it will still have ≈18months of life at the point Django 4.0 is released. I've argued previously for a loosening in the policy here[3]. Roughly, unless there are technical reasons to advance, the situation I'd like is that, if you have a (python-)supported version of Python then you can `pip install Django` and get the latest major version. That is, roughly, the ideally, we'd follow Python's support versions policy. (The flip side being I think we should probably be actively dropping support for versions of Python as they go EOL, even if between LTS versions.) With the change to Python's new annual release cycle[4], we're going to need to adjust the policy somehow. Python 3.8 will be EOL for a full 2 years before Django 4.2 is itself EOL. Can I ask for consideration and ideas at this stage, which hopefully can lead to a fresh consensus? Thanks! Kind regards, Carlton [0] https://docs.djangoproject.com/en/dev/faq/install/#what-python-version-can-i-use-with-django [1] https://devguide.python.org/#status-of-python-branches [2] https://www.djangoproject.com/download/#supported-versions [3] https://groups.google.com/g/django-developers/c/YDJwI7uvgxU/m/c0ZPHaXZFQAJ [4] https://www.python.org/dev/peps/pep-0602/ -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-developers+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/731dc68b-d3b9-4368-8efb-e77f8c3b9d89n%40googlegroups.com.