Part of the rationale for dropping Python versions after an LTS is was to
avoid getting "stranded" on a non-LTS version of Django. For example, if we
keep Python 3.7 support in Django until Python 3.7 is end of life in June
2023, that would probably make Django 4.1 the latest version to support it
(4.2 is scheduled for April 2023, a few months before Python 3.7 EOL). At
that point, someone stuck on Python 3.7 would receive Django security
updates a few months longer if they had stuck with 3.2 LTS (supported until
April 2024) compared with Django 4.1 (supported until December 2023).
That's not so bad, but if the version following an LTS is the last to
support a particular version of Python, like would happen with Django 5.0
and Python 3.8 in my forecast below, then this "Django security gap" for a
particular Python version would be one year.
Historically, Django has supported 3-5 version of Python. With Python
moving to a yearly release cadence, that's going to increase the number of
versions of Python that Django has to support under the current policy to
4-6. Amending the Python version support policy as suggested would mean it
would always be 5-6. That makes for some large build matrices. I'm
especially thinking about the downstream effects to all the third party
apps that follow Django's Python support.
(Incidentally, it occurred to me that more rapid Python releases *might*
actually mean that being a little more aggressive in dropping old Python
versions from Django might be less disruptive than it was in the past,
that's if new Python versions make it out to the distros more quickly. It's
probably too soon to tell, but someone who follows distro releases might be
able to give a forecast.)
This chart assumes "support a Python version up to the Django release
that's a few months before that Python EOL." I didn't proof it super
carefully but it should give a general idea of what's coming.
- Stars indicate of version of Python that wouldn't be supported under the
current "Typically, we will support a Python version..." guideline.
- Dates in parentheses indicate Python version support added after a major
version's initial release.
Django ReleasedEnd of life
2.2 LTS April 2019 April 2022 3.5, 3.6, 3.7, 3.8, 3.9
3.0 December 2019 April 2021 3.6, 3.7, 3.8, 3.9
3.1 August 2020 December 2021 3.6, 3.7, 3.8, 3.9
3.2 LTS April 2021 April 2024 3.6, 3.7, 3.8, 3.9, 3.10
(Oct 2021), 3.11 (Oct 2022)
4.0 December 2021 April 2023 3.7*, 3.8, 3.9, 3.10, 3.11
(Oct 2022)
4.1 August 2022 December 2023 3.7*, 3.8, 3.9, 3.10, 3.11
(Oct 2022)
4.2 LTS April 2023 April 2026 3.8, 3.9, 3.10, 3.11, 3.12
(Oct 2023), 3.13 (Oct 2024)
5.0 December 2023 April 2025 3.8*, 3.9*, 3.10, 3.11,
3.12, 3.13 (Oct 2024)
5.1 August 2024 December 2025 3.9*, 3.10, 3.11, 3.12,
3.13 (Oct 2024)
5.2 LTS April 2025 April 2028 3.10, 3.11, 3.12, 3.13,
3.14 (Oct 2025), 3.15 (Oct 2026)
Python Released End of life
3.5 September 2015 September 2020
3.6 December 2016 December 2021
3.7 June 2018 June 2023
3.8 October 2019 October 2024
3.9 October 2020 October 2025
3.10October 2021 October 2026
3.11October 2022 October 2027
3.12October 2023 October 2028
3.13October 2024 October 2029
3.14October 2025 October 2030
References
Status of Python branches:
https://devguide.python.org/#status-of-python-branches
Annual release cycle for Python: https://www.python.org/dev/peps/pep-0602/
On Saturday, November 21, 2020 at 12:52:08 AM UTC-5 carlton...@gmail.com
wrote:
> Note that this is discussing support in Django 4.0 (which is the main
> development branch after stable/3.2.x is created).
>
> 4.0 will be released December 2021. Python 3.6 is EOL that very month
>
> > 3.6 2021-12-23
>
> The next version of Django (3.2) will support Python 3.6
>
>
--
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/e1e965a3-9dfd-4c9a-bb36-eca8d970abe8n%40googlegroups.com.