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.

Reply via email to