Python version support for LTS Django (in particular v2.2)

266 views
Skip to first unread message

Carlton Gibson

unread,
Oct 30, 2019, 10:44:20 AM10/30/19
to Django developers (Contributions to Django itself)
Hi all. 

In November last year we added official Python 3.7 support to Django 1.11.


This was 18 months after release, and well into the extended support period. 

There had been a long-line of requests to add that support. It seems that lots of users want both the latest 
Python and the Django LTS. 


Django 2.2 officially only supports Python 3.8. 

Python 3.8 is already available. 

Python 3.9 will be available Oct 2020, which is a ≈18months before 2.2. is EOL, and is roughly equivalent to when we added support for Python 3.7 to Django 1.11. 


I predict a similarly strong demand to support the newer Python versions in Django 2.2. 

I'm happy to take whatever line we deem appropriate here, but I'd like to avoid, for example, saying "No, it's not supported" for many months, before then changing our minds. 

So what shall we do? 

Django 2.2 is still in mainstream support and I think it should automatically get Python 3.8 support. 
I think version of Django should support the new Python versions whilst in mainstream support, but I think this applies doubly to the LTS, even though the LTS isn't my thing, simply because of the demand for it. 

Data point: I didn't test the full matrix but, tests are already passing here. 

For Python 3.9 I think we should probably declare now that we will review whether we will support it for 2.2 LTS when it's released. 
(i.e. if it's a small back port like the one required for 3.7/1.11 then yes, otherwise no.) 


What do we think? 

Thanks 
Kind Regards,

Carlton

Carlton Gibson

unread,
Oct 30, 2019, 10:56:11 AM10/30/19
to Django developers (Contributions to Django itself)
Sorry typo there. Should say: 

> Django 2.2 officially only supports up to Python 3.7. 

Otherwise the issue doesn't make sense. 

Tobias McNulty

unread,
Oct 30, 2019, 11:47:15 AM10/30/19
to django-developers
tl;dr: I'm in favor of officially supporting 3.8, if it looks like it won't be so hard to do (and especially if doing so will result in a net decrease in the support burden).

Long answer:

I'm not sure if this was prompted in part by my question in #django-dev... but consider me one of the people who was confused about this. (And thanks Mariusz for reminding me of this page which more clearly lays out the supported Django/Python version combos: https://docs.djangoproject.com/en/dev/faq/install/#what-python-version-can-i-use-with-django) :)

At least, we may wish to clarify the 2.2 release notes to say that versions before and after those explicitly listed are NOT supported (and/or link people to the above page from the release notes). Depending on how closely one is paying attention (I wasn't), it's possible to read this sentence and think that Django actually wants me to use Python 3.8 with Django 2.2:

"We highly recommend and only officially support the latest release of each series." (https://docs.djangoproject.com/en/2.2/releases/2.2/)

(I think) I see now that that's referring to the latest release of Django rather than Python, but I'm still not entirely sure about that. (The other possibility being that that language is a holdover from the time when we were supporting both Python 2 and 3.)

Cheers,

Tobias McNulty
Chief Executive Officer

tob...@caktusgroup.com
www.caktusgroup.com



--
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-develop...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/6a01c30f-3a41-4d66-b40d-c8de221a62fb%40googlegroups.com.

Carlton Gibson

unread,
Oct 30, 2019, 12:29:38 PM10/30/19
to Django developers (Contributions to Django itself)
Not so much prompted, as reminded. It's already on my mind... I've a lot of "Add Python 3.8 support" in various places the last couple of weeks... 

That _highly recommend_ sentence could go: 

> We highly recommend and only officially support the latest point release of each support Python series. 

...
To unsubscribe from this group and stop receiving emails from it, send an email to django-d...@googlegroups.com.

Tobias McNulty

unread,
Oct 30, 2019, 12:39:33 PM10/30/19
to django-developers
On Wed, Oct 30, 2019 at 12:29 PM Carlton Gibson <carlton...@gmail.com> wrote:
That _highly recommend_ sentence could go: 

> We highly recommend and only officially support the latest point release of each support Python series. 

 👏 Love it! (though perhaps drop or edit the second "support")

Tobias

Adam Johnson

unread,
Oct 30, 2019, 1:13:58 PM10/30/19
to django-d...@googlegroups.com
I'm also in favour of adding 3.8 support and backporting 3.9 support assuming it's not a huge change!

--
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-develop...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAMGFDKQipHMR5VyM-VvCx0uPB1E9DPeTOX08fL%3DwYR%2B%3D%2B7GTgw%40mail.gmail.com.


--
Adam

Nick Pope

unread,
Oct 30, 2019, 1:36:12 PM10/30/19
to Django developers (Contributions to Django itself)
I think that the main reason for supporting Python 3.7 in Django 1.11 was to help make things easier for those migrating from Python 2 to 3.

Python 3.8 was only released ~3 months before the Python 2 EOL, so most people in the last year and up to the end of this year will likely migrate to Python 3.7.

I also feel the policy was a little aggressive given that the total change to support Python 3.7 was https://github.com/django/django/compare/216398d1...c11a7b4

So +1 to Python 3.8 for Django 2.2, with an option on Python 3.9 if trivial.

Johannes Hoppe

unread,
Oct 31, 2019, 5:38:47 AM10/31/19
to Django developers (Contributions to Django itself)
I am trying to understand the motivation to use an "old" Django 2.2 but a "bleading edge" Python version. I can understand Nicks logic of people needing to upgrade form Python 2 to 3 and Debian by default gave them Python 3.7.
Following that narrative, maybe we should check what the major operating systems have in stall for us, right? Then again, there is not going to be a big Python 2 to 3 change again *fingerscrossed*.

Jani Tiainen

unread,
Oct 31, 2019, 4:02:32 PM10/31/19
to django-d...@googlegroups.com
Problem is that Python.org site always gives latest version as default download.

When 3.8 was released one lib I work with suddenly got flood of help requests because there was not prebuilt packages for 3.8. 

So I think it's more issue for people that inadvertly upgrades Python.

to 31. lokak. 2019 klo 11.39 Johannes Hoppe <in...@johanneshoppe.com> kirjoitti:
I am trying to understand the motivation to use an "old" Django 2.2 but a "bleading edge" Python version. I can understand Nicks logic of people needing to upgrade form Python 2 to 3 and Debian by default gave them Python 3.7.
Following that narrative, maybe we should check what the major operating systems have in stall for us, right? Then again, there is not going to be a big Python 2 to 3 change again *fingerscrossed*.

--
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-develop...@googlegroups.com.

Johannes Hoppe

unread,
Nov 7, 2019, 10:37:22 PM11/7/19
to django-developers googlegroups.com
I see. Well, I think I would be for supporting Python 3.8 in that case. Maybe it makes sense to add Python nightly build tests to those braches to make sure we catch issues early and it doesn't become an overwhelming task.

You received this message because you are subscribed to a topic in the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-developers/SuOdHt2AWgs/unsubscribe.
To unsubscribe from this group and all its topics, send an email to django-develop...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAHn91of%2B3oDEyb6cHcKtPG3gk61%3DucqpoRzUnPRpZ%2BS7ux2ZSg%40mail.gmail.com.

Mariusz Felisiak

unread,
Nov 8, 2019, 1:46:21 AM11/8/19
to Django developers (Contributions to Django itself)

I see. Well, I think I would be for supporting Python 3.8 in that case. Maybe it makes sense to add Python nightly build tests to those braches to make sure we catch issues early and it doesn't become an overwhelming task.

Mariusz Felisiak

unread,
Nov 13, 2019, 3:40:04 AM11/13/19
to Django developers (Contributions to Django itself)
Django 2.2.8 adds compatibility with Python 3.8 (see [1])

Best,
Mariusz


Mariusz Felisiak

unread,
Oct 13, 2020, 1:56:08 AM10/13/20
to Django developers (Contributions to Django itself)
Hi,

    Django 2.2.17 (LTS), 3.0.11, and 3.1.3 add compatibility with Python 3.9 (see PR13506) so all supported versions of Django will be compatible with Python 3.9. However, we want to say now that Django 3.2 (LTS) will be the first version to support Python 3.10.

Best,
Mariusz

Adam Johnson

unread,
Oct 13, 2020, 12:17:47 PM10/13/20
to django-d...@googlegroups.com
Great. Thank you for doing this Mariusz!

--
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-develop...@googlegroups.com.


--
Adam
Reply all
Reply to author
Forward
0 new messages