It's interesting to me that no one (besides Claude -- and that's based on 
his ability to contribute to Django) has indicated that they care about 
Python 3.5 support in their deployments of Django 3.0... so I wonder if 
there is really a strong need for it. Who is saying, "I want to use the 
latest version of Django, but I want to use a really old version of 
Python." ... then 8 months later when Django 3.1 is released ... oh, now I 
still want to use the latest version of Django but I can't because my 
Python is too old.

It's an analogous situation to Django 2.0 and Python 3.4. From the Django 
2.0 release notes, "Django 2.0 will be the last release series to support 
Python 3.4. If you plan a deployment of Python 3.4 beyond the end-of-life 
for Django 2.0 (April 2019), stick with Django 1.11 LTS (supported until 
April 2020) instead. Note, however, that the end-of-life for Python 3.4 is 
March 2019." Is anyone in this situation? As I argued before, I think it's 
better to drop support for versions of Python after an LTS so that Django 
users aren't "stranded" on some unsupported Django because their Python is 
too old.

If we amend the policy as suggested, then I think Django 2.1 (end of 
mainstream support in April) would have gotten Python 3.4 support (end of 
support in March) -- did anyone miss that?

It's impossible to quantify how much work would be required to support the 
oldest version of Python an extra 8 or 16 months in Django's branch. It's 
not only keeping around workarounds for that older Python, but also 
developing new features with workarounds... and not being able to use new 
features in Python (or having to vendor them in Django, which then 
generally requires a deprecation of that vendored code). I think the 
justification to adopt a new policy should be clear. Currently I see "it 
would be nice" theoretical arguments. Let's hear from people who find the 
current Python support policy insufficient for their needs.

On Thursday, January 24, 2019 at 12:04:35 PM UTC-5, Ryan Hiebert wrote:
> On Thu, Jan 24, 2019 at 10:55 AM Adam Johnson < <javascript:>> 
> wrote:
>> So, phrasing... maybe... as a draft: "Typically, we will support a Python 
>>> version unless it will be end of life before the corresponding version of 
>>> Django is outside of mainstream support. For example, Python 3.5 security 
>>> support ends September 2019, whilst Django 3.1 ends mainstream support in 
>>> April 2021. Therefore Django 3.0, which is end of life August 2019 is the 
>>> last version to support Python 3.5." 
>> +1. A subtle change on the existing policy but it makes a difference.
> That seems better to me as well. It only ties us to the support policy of 
> Python, not various special-cased distributions. My concern, though, is 
> that it weakens semantic versioning a bit, so we should do it carefully. We 
> don't follow it precisely, but if we drop support for a version of Python, 
> that seems to me like it would qualify as a breaking change, and should be 
> preferred to be done when changing major versions after an LTS release. If 
> that is deemed to not be a significant concern, then I think this proposed 
> policy is a reasonable one.

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 post to this group, send email to
Visit this group at
To view this discussion on the web visit
For more options, visit

Reply via email to