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 Released End 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.10 October 2021 October 2026 3.11 October 2022 October 2027 3.12 October 2023 October 2028 3.13 October 2024 October 2029 3.14 October 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.