revisiting the Python version support policy

classic Classic list List threaded Threaded
32 messages Options
12
Reply | Threaded
Open this post in threaded view
|

revisiting the Python version support policy

Tim Graham-2
When deciding when to drop support for Python 2 in Django, there was consensus to adopt this Python version support policy [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."

Since then, we didn't abide by this policy when dropping Python 3.4, mainly because Debian stable still used Python 3.4 at the time and Claude argued that some people like him would have difficulty contributing to Django if they had to install another version of Python [1].

Based on the policy, it's time to drop support for Python 3.5 in the master branch (Django 3.0) -- with Django 2.2 LTS supported until April 2022 and Python 3.5 supported until September 2020). I created a ticket [2] and PR [3] for dropping support for Python 3.5 [2], however, Claude commented, "I'm not so enthusiast to drop Python 3.5 now (it is still the default version in Debian stable). Couldn't this be done in Django 3.1 instead?"

Are you in favor of amending the Python support version policy to account for the Python version in Debian stable?

[0] https://docs.djangoproject.com/en/dev/faq/install/#what-python-version-can-i-use-with-django
[1] https://groups.google.com/d/msg/django-developers/4rbVKJYm8DI/TTh3i04pBQAJ
[2] https://code.djangoproject.com/ticket/30116
[3] https://github.com/django/django/pull/10864

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/ce5f3cdb-a623-4bcc-a661-bf88d91a5a7f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Ryan Hiebert-2
I don't feel like my voice should have much weight, but I think that the policy as written is better. Debian aims to be stable long term, and for us to match Debian, especially when not in our LTS releases, seems excessive to me.

On Mon, Jan 21, 2019 at 9:56 AM Tim Graham <[hidden email]> wrote:
When deciding when to drop support for Python 2 in Django, there was consensus to adopt this Python version support policy [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."

Since then, we didn't abide by this policy when dropping Python 3.4, mainly because Debian stable still used Python 3.4 at the time and Claude argued that some people like him would have difficulty contributing to Django if they had to install another version of Python [1].

Based on the policy, it's time to drop support for Python 3.5 in the master branch (Django 3.0) -- with Django 2.2 LTS supported until April 2022 and Python 3.5 supported until September 2020). I created a ticket [2] and PR [3] for dropping support for Python 3.5 [2], however, Claude commented, "I'm not so enthusiast to drop Python 3.5 now (it is still the default version in Debian stable). Couldn't this be done in Django 3.1 instead?"

Are you in favor of amending the Python support version policy to account for the Python version in Debian stable?

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/ce5f3cdb-a623-4bcc-a661-bf88d91a5a7f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CABpHFHTSo%3D80GWdA6kLqk%3DXBxFa6s1d3V%3D_LBmoj4oCJQwJMLA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Jason Johns
In addition, with tools like https://github.com/pyenv/pyenv available that make changing the currently applicable python version in any given shell extremely easy, I feel pinning support to a specific operating system version, however stable, is not the optimal approach

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/211103b2-ecb4-4e3e-bf84-85cd049b47ad%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Claude Paroz
In reply to this post by Tim Graham-2
I understand my obsession for stable software puts me in a small-minority group and I would not like to be an obstacle for all other Django users and developers.
Let's stick to the current policy. I'll try to remember that and prevent commenting on the next " Drop python support..." ticket :-)

Claude

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/85adb894-c908-4835-98fe-96c859d79a15%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Adam Johnson-2
I like stability too, but I think Django's current policy is useful for driving the ecosystem forwards. Users sticking on old/stable versions of Python can stick on old/stable versions of Django :)

On Tue, 22 Jan 2019 at 10:07, Claude Paroz <[hidden email]> wrote:
I understand my obsession for stable software puts me in a small-minority group and I would not like to be an obstacle for all other Django users and developers.
Let's stick to the current policy. I'll try to remember that and prevent commenting on the next " Drop python support..." ticket :-)

Claude

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/85adb894-c908-4835-98fe-96c859d79a15%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
Adam

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAMyDDM06JVaGXYK9mQt%3DzujOQ6_UuPx7RKjz8jYZORxA_fnE_g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Federico Capoano-2
In reply to this post by Tim Graham-2
I would ask: what are the pros and cons of dropping support for python 3.5?

I think allowing users to easily use and install django based applications is more important than strictly follow a python version support policy.

I think that if we drop support for python 3.5, which is the default python version on many linux platforms right now, we will make the life of our users and developers harder.
I don't understand the reason for doing so, if we have to do it for a good reason, like a security issue, or because django has to take advantage of features that are available only from python 3.6 onwards, I would be in favour, but if we have to do it only because the policy says so, without any other advantage, I would amend the policy.

My 2 cents.

Thanks for your hard work maintaining django
Federico 


On Monday, January 21, 2019 at 10:56:40 AM UTC-5, Tim Graham wrote:
When deciding when to drop support for Python 2 in Django, there was consensus to adopt this Python version support policy [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."

Since then, we didn't abide by this policy when dropping Python 3.4, mainly because Debian stable still used Python 3.4 at the time and Claude argued that some people like him would have difficulty contributing to Django if they had to install another version of Python [1].

Based on the policy, it's time to drop support for Python 3.5 in the master branch (Django 3.0) -- with Django 2.2 LTS supported until April 2022 and Python 3.5 supported until September 2020). I created a ticket [2] and PR [3] for dropping support for Python 3.5 [2], however, Claude commented, "I'm not so enthusiast to drop Python 3.5 now (it is still the default version in Debian stable). Couldn't this be done in Django 3.1 instead?"

Are you in favor of amending the Python support version policy to account for the Python version in Debian stable?

[0] <a href="https://docs.djangoproject.com/en/dev/faq/install/#what-python-version-can-i-use-with-django" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fdocs.djangoproject.com%2Fen%2Fdev%2Ffaq%2Finstall%2F%23what-python-version-can-i-use-with-django\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHvM1TqT11WW495Ia2KMUD0nnE1dg&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fdocs.djangoproject.com%2Fen%2Fdev%2Ffaq%2Finstall%2F%23what-python-version-can-i-use-with-django\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHvM1TqT11WW495Ia2KMUD0nnE1dg&#39;;return true;">https://docs.djangoproject.com/en/dev/faq/install/#what-python-version-can-i-use-with-django
[1] <a href="https://groups.google.com/d/msg/django-developers/4rbVKJYm8DI/TTh3i04pBQAJ" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/d/msg/django-developers/4rbVKJYm8DI/TTh3i04pBQAJ&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/msg/django-developers/4rbVKJYm8DI/TTh3i04pBQAJ&#39;;return true;">https://groups.google.com/d/msg/django-developers/4rbVKJYm8DI/TTh3i04pBQAJ
[2] <a href="https://code.djangoproject.com/ticket/30116" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F30116\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEbDlNx58J8anHALZQoieIep1XF1g&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F30116\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEbDlNx58J8anHALZQoieIep1XF1g&#39;;return true;">https://code.djangoproject.com/ticket/30116
[3] <a href="https://github.com/django/django/pull/10864" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fdjango%2Fdjango%2Fpull%2F10864\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHwM6Nj-jHWP_e7JQA9dpekWuelLw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fdjango%2Fdjango%2Fpull%2F10864\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHwM6Nj-jHWP_e7JQA9dpekWuelLw&#39;;return true;">https://github.com/django/django/pull/10864

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/51dfc517-8b5a-4803-9f8d-daa1bf920e7b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Collin Anderson-2
Now that we've dropped Python 2, I personally wouldn't mind having the policy be to support all supported versions of python (except 2.7) at the time of each Django release. So Django would drop just after Python drops. (The most recent version of Django (and maybe LTS too) should probably also add support for new versions of Python, so we're not holding people back from trying out the latest Python.) But I don't have a good feel for what the maintenance burden is for supporting old versions of Python, so I don't see first-hand the advantages of dropping earlier. Now that we're 3.x-only, I don't like the idea of "driving the ecosystem forwards" being an excuse for dropping Python early. I agree "allowing users to easily use and install django based applications" is more important.

I also like the idea of "amending the Python support version policy to account for the Python version in Debian stable", as that's a little more practical, though we start play favorites with distros.


On Tue, Jan 22, 2019 at 10:04 AM Federico Capoano <[hidden email]> wrote:
I would ask: what are the pros and cons of dropping support for python 3.5?

I think allowing users to easily use and install django based applications is more important than strictly follow a python version support policy.

I think that if we drop support for python 3.5, which is the default python version on many linux platforms right now, we will make the life of our users and developers harder.
I don't understand the reason for doing so, if we have to do it for a good reason, like a security issue, or because django has to take advantage of features that are available only from python 3.6 onwards, I would be in favour, but if we have to do it only because the policy says so, without any other advantage, I would amend the policy.

My 2 cents.

Thanks for your hard work maintaining django
Federico 


On Monday, January 21, 2019 at 10:56:40 AM UTC-5, Tim Graham wrote:
When deciding when to drop support for Python 2 in Django, there was consensus to adopt this Python version support policy [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."

Since then, we didn't abide by this policy when dropping Python 3.4, mainly because Debian stable still used Python 3.4 at the time and Claude argued that some people like him would have difficulty contributing to Django if they had to install another version of Python [1].

Based on the policy, it's time to drop support for Python 3.5 in the master branch (Django 3.0) -- with Django 2.2 LTS supported until April 2022 and Python 3.5 supported until September 2020). I created a ticket [2] and PR [3] for dropping support for Python 3.5 [2], however, Claude commented, "I'm not so enthusiast to drop Python 3.5 now (it is still the default version in Debian stable). Couldn't this be done in Django 3.1 instead?"

Are you in favor of amending the Python support version policy to account for the Python version in Debian stable?

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/51dfc517-8b5a-4803-9f8d-daa1bf920e7b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAFO84S5kx5W18xA7H99cJk9%2B7s4LVRNJCD7RDfaXBz76HjEAQQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Gert Van Gool
We can look at the larger distros (Debian, Ubuntu, RHEL). For RHEL, their derivatives include CentOS , Scientic Linux, Amazon Linux, Oracle Linux. RHEL 7 has no (main) Python 3 support. It's only introduced in RHEL 8 (which is currently in beta).

That gives us for Debian Stretch (stable) and Ubuntu 16.04 Python 3.5. While Ubuntu 18.04 and RHEL 8 have Python 3.6. 

-- Gert

Mobile: +32 498725202


On Tue, Jan 22, 2019 at 6:11 PM Collin Anderson <[hidden email]> wrote:
Now that we've dropped Python 2, I personally wouldn't mind having the policy be to support all supported versions of python (except 2.7) at the time of each Django release. So Django would drop just after Python drops. (The most recent version of Django (and maybe LTS too) should probably also add support for new versions of Python, so we're not holding people back from trying out the latest Python.) But I don't have a good feel for what the maintenance burden is for supporting old versions of Python, so I don't see first-hand the advantages of dropping earlier. Now that we're 3.x-only, I don't like the idea of "driving the ecosystem forwards" being an excuse for dropping Python early. I agree "allowing users to easily use and install django based applications" is more important.

I also like the idea of "amending the Python support version policy to account for the Python version in Debian stable", as that's a little more practical, though we start play favorites with distros.


On Tue, Jan 22, 2019 at 10:04 AM Federico Capoano <[hidden email]> wrote:
I would ask: what are the pros and cons of dropping support for python 3.5?

I think allowing users to easily use and install django based applications is more important than strictly follow a python version support policy.

I think that if we drop support for python 3.5, which is the default python version on many linux platforms right now, we will make the life of our users and developers harder.
I don't understand the reason for doing so, if we have to do it for a good reason, like a security issue, or because django has to take advantage of features that are available only from python 3.6 onwards, I would be in favour, but if we have to do it only because the policy says so, without any other advantage, I would amend the policy.

My 2 cents.

Thanks for your hard work maintaining django
Federico 


On Monday, January 21, 2019 at 10:56:40 AM UTC-5, Tim Graham wrote:
When deciding when to drop support for Python 2 in Django, there was consensus to adopt this Python version support policy [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."

Since then, we didn't abide by this policy when dropping Python 3.4, mainly because Debian stable still used Python 3.4 at the time and Claude argued that some people like him would have difficulty contributing to Django if they had to install another version of Python [1].

Based on the policy, it's time to drop support for Python 3.5 in the master branch (Django 3.0) -- with Django 2.2 LTS supported until April 2022 and Python 3.5 supported until September 2020). I created a ticket [2] and PR [3] for dropping support for Python 3.5 [2], however, Claude commented, "I'm not so enthusiast to drop Python 3.5 now (it is still the default version in Debian stable). Couldn't this be done in Django 3.1 instead?"

Are you in favor of amending the Python support version policy to account for the Python version in Debian stable?

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/51dfc517-8b5a-4803-9f8d-daa1bf920e7b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAFO84S5kx5W18xA7H99cJk9%2B7s4LVRNJCD7RDfaXBz76HjEAQQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAPuLG2JDAYH1g2SW6z%2BYVg%2Bb5Tw64FAZNqTWuV9baCVCZ_HZdw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Josh Smeaton
In reply to this post by Federico Capoano-2
Don't discount being able to use features from newer versions of python within Django itself.

https://docs.python.org/3/whatsnew/3.6.html

- dicts are more performant
- dicts/kwargs/class attributes are ordered (cpython implementation detail for 3.6 - allowing us to consider removing descriptor counters)
- fstrings
- type annotations (something some people are quite in favour of)
- async comprehensions and generators (less important for Django right now - may be more important for Channels)
- secrets module
- pathlib
- descriptor improvements (set_name, __init_subclass__)

I'm more in favour of maintaining the existing policy than playing favourites with distro support, but not strongly so. The LTS Django is already covering Python 3.5 for 18 months **longer** than the EOL. I don't think the newest versions of Django need to be so concerned with distro compatibility.

On Wednesday, 23 January 2019 02:03:54 UTC+11, Federico Capoano wrote:
I would ask: what are the pros and cons of dropping support for python 3.5?

I think allowing users to easily use and install django based applications is more important than strictly follow a python version support policy.

I think that if we drop support for python 3.5, which is the default python version on many linux platforms right now, we will make the life of our users and developers harder.
I don't understand the reason for doing so, if we have to do it for a good reason, like a security issue, or because django has to take advantage of features that are available only from python 3.6 onwards, I would be in favour, but if we have to do it only because the policy says so, without any other advantage, I would amend the policy.

My 2 cents.

Thanks for your hard work maintaining django
Federico 


On Monday, January 21, 2019 at 10:56:40 AM UTC-5, Tim Graham wrote:
When deciding when to drop support for Python 2 in Django, there was consensus to adopt this Python version support policy [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."

Since then, we didn't abide by this policy when dropping Python 3.4, mainly because Debian stable still used Python 3.4 at the time and Claude argued that some people like him would have difficulty contributing to Django if they had to install another version of Python [1].

Based on the policy, it's time to drop support for Python 3.5 in the master branch (Django 3.0) -- with Django 2.2 LTS supported until April 2022 and Python 3.5 supported until September 2020). I created a ticket [2] and PR [3] for dropping support for Python 3.5 [2], however, Claude commented, "I'm not so enthusiast to drop Python 3.5 now (it is still the default version in Debian stable). Couldn't this be done in Django 3.1 instead?"

Are you in favor of amending the Python support version policy to account for the Python version in Debian stable?

[0] <a href="https://docs.djangoproject.com/en/dev/faq/install/#what-python-version-can-i-use-with-django" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fdocs.djangoproject.com%2Fen%2Fdev%2Ffaq%2Finstall%2F%23what-python-version-can-i-use-with-django\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHvM1TqT11WW495Ia2KMUD0nnE1dg&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fdocs.djangoproject.com%2Fen%2Fdev%2Ffaq%2Finstall%2F%23what-python-version-can-i-use-with-django\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHvM1TqT11WW495Ia2KMUD0nnE1dg&#39;;return true;">https://docs.djangoproject.com/en/dev/faq/install/#what-python-version-can-i-use-with-django
[1] <a href="https://groups.google.com/d/msg/django-developers/4rbVKJYm8DI/TTh3i04pBQAJ" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/msg/django-developers/4rbVKJYm8DI/TTh3i04pBQAJ&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/msg/django-developers/4rbVKJYm8DI/TTh3i04pBQAJ&#39;;return true;">https://groups.google.com/d/msg/django-developers/4rbVKJYm8DI/TTh3i04pBQAJ
[2] <a href="https://code.djangoproject.com/ticket/30116" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F30116\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEbDlNx58J8anHALZQoieIep1XF1g&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fticket%2F30116\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEbDlNx58J8anHALZQoieIep1XF1g&#39;;return true;">https://code.djangoproject.com/ticket/30116
[3] <a href="https://github.com/django/django/pull/10864" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fdjango%2Fdjango%2Fpull%2F10864\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHwM6Nj-jHWP_e7JQA9dpekWuelLw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fdjango%2Fdjango%2Fpull%2F10864\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHwM6Nj-jHWP_e7JQA9dpekWuelLw&#39;;return true;">https://github.com/django/django/pull/10864

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/a8e5bc63-15b1-4c77-92ae-59e61daa30fd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

James Bennett
I worry about the precedent we'd set if we made an exception for Debian, because the next question would be "OK, can we have an exception for Red Hat, too?" Keep in mind Red Hat currently sells up to fourteen years of support for their RHEL platform.

So I think it's best to recognize that:

People who just want to use Django, and choose to prioritize long-lived stable operating-system distributions, will get a supported version of Django from their operating-system vendor (and the vendor will maintain that version of Django for the length of the vendor's support period). They don't get to use newer versions of Django that drop support for their vendor's default Python version, but they've already made the choice to prioritize stability rather than access to new versions, and this is the consequence of the choice.

People who want to contribute to Django probably already need to solve the problem of having multiple Python versions installed, since we don't have any releases that are tied to only one version of Python. So they need to use something other than their system's default Python no matter what, and dropping support for an older system Python doesn't add any complications to their workflow.

So I don't think we should make an exception for Debian, or any other long-lived distributions.

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAL13Cg8Kccb0p0pySci1cWxHYB7RrWFV%3DmX-HwULk%2B3FEVkrgA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Joe Tennies
In reply to this post by Josh Smeaton
I'm not going to argue one way or the other, as it doesn't really affect me either way. (I will say that Python 3.5 is no longer a supported version on Heroku.)

On the other hand, I will argue how supporting 3.5 might affect the upcoming Django version. I've included my opinionated breakdown below. I will say that the biggest item I see is the security in django/utils/crypto.py. It could get rid of the less than ideal fallback and just use secrets for the RNG. The descriptor improvements may be important, but I couldn't tell.

On Tue, Jan 22, 2019 at 11:16 PM Josh Smeaton <[hidden email]> wrote:
Don't discount being able to use features from newer versions of python within Django itself.


- dicts are more performant
This should just make 3.6 faster, right? It doesn't actually break 3.5.
- dicts/kwargs/class attributes are ordered (cpython implementation detail for 3.6 - allowing us to consider removing descriptor counters)
According to the documentation you posted, this is not to be relied upon (until 3.7 that is).
- fstrings
 While this is interesting, I must state that I'm more than a little concerned of the security implications for grabbing variables from the global memory space.
- type annotations (something some people are quite in favour of)
According to the documentation, these changes were backported to 3.5, though saying you need 3.5.x where x> something is... painful to support. Also, unlikely to make it in this version of Django. They are also much more useful in 3.7 when PEP 563 is implemented to allow for forward declarations and not evaluating them at startup (though this will require a __future__ import even then).
- async comprehensions and generators (less important for Django right now - may be more important for Channels)
 Agreed, and perhaps Channels has a higher requirement. I'll also point out async improvements and usability is also in the Python 3.7 release notes.
- secrets module
This could be a security concern that should at least be documented. It is solely a cryptographically sound random number generator currently.
- pathlib
 This would be interesting to add support for.
- descriptor improvements (set_name, __init_subclass__)
I'm not sure I'm smart enough to understand this... at least at this point in the night.

I'm more in favour of maintaining the existing policy than playing favourites with distro support, but not strongly so. The LTS Django is already covering Python 3.5 for 18 months **longer** than the EOL. I don't think the newest versions of Django need to be so concerned with distro compatibility.

--
Joe Tennies
[hidden email]

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CACiOJ6szy2GKbNF9QuyzYHyitqQhhGk3eF%2BTyju00rNCEjOZ1w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Claude Paroz
In reply to this post by James Bennett
Le mercredi 23 janvier 2019 08:31:17 UTC+1, James Bennett a écrit :
I worry about the precedent we'd set if we made an exception for Debian, because the next question would be "OK, can we have an exception for Red Hat, too?" Keep in mind Red Hat currently sells up to fourteen years of support for their RHEL platform.

You're right, the fact that this is Debian or any other distro doesn't matter here. My idea was to set the policy as : when a new major Django version is released, it supports all current supported versions of Python.

> People who want to contribute to Django probably already need to solve the problem of having multiple Python versions installed...

That's not my experience. It was during Python 2/3 coexistence, but now if you develop with any Python 3 version, the rare cases where Python version incompatibilities happen are catched by the CI runs.

Claude

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/3160ff66-d0cf-44a4-af00-1330854b8295%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Carlton Gibson-3
> My idea was to set the policy as : when a new major Django version is released, it supports all current supported versions of Python.

I agree with this — more or less...

Python 3.5 is officially supported for the entire life of Django 3.0. (It goes EOL a month after Django 3.0) 
(c.p [0] vs [1])

[0]: https://devguide.python.org/#status-of-python-branches
[1]: https://www.djangoproject.com/download/#supported-versions

So I think we SHOULD support Python 3.5 for Django 3.0.
(Yes, push forward, but pushing people off of supported versions seems a bit over-zealous, and I think we'll be shooting ourselves in the foot, due to the need to repeatedly handle, probably valid, pushback.)

However Django v3.1 will be released JUST A MONTH before Python v3.5 goes EOL. As such I don't want to support it there. 

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." 

i.e. What Claude said except "...unless it's just about to be dropped". 

I know we backported support for Python 3.7 to Django 1.11 but I think this should apply to the LTS as well. 

> ...they've already made the choice to prioritize stability rather than access to new versions, and this is the consequence of the choice...


Just as an additional point, Django third-party apps as a rule try to follow Django's support versions policy. (i.e. Currently supporting 1.11+) This works well for people. I think the situation is equivalent with regards to Django and Python. 

Kind Regards,

Carlton

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/dbab5867-b4aa-4dbe-a952-b8fbd9657e3b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Carlton Gibson-3
Sorry I mistyped. " Python 3.5 security support ends September 2020" (but you get the point.)

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/ac50c67c-51a8-4c94-9505-c19fc6fd7cfc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Adam Johnson-2
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.

On Thu, 24 Jan 2019 at 08:16, Carlton Gibson <[hidden email]> wrote:
Sorry I mistyped. " Python 3.5 security support ends September 2020" (but you get the point.)

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/ac50c67c-51a8-4c94-9505-c19fc6fd7cfc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
Adam

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAMyDDM1-jtxRXNXjcvr8ALPXTAh8ss-LN%3DniAODm1hNQ9nwEWA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Ryan Hiebert-2

On Thu, Jan 24, 2019 at 10:55 AM Adam Johnson <[hidden email]> 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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CABpHFHQ9riKkac3kYpcJXPc3Jct4xUFdEh_7bzha-cSDwKBmiw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Tim Graham-2
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 <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="f6YqLmJdFAAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">m...@...> 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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/afff11b1-5924-45a0-b204-99a2a04f5f39%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Ryan Hiebert-2


On Thu, Jan 24, 2019 at 11:29 AM Tim Graham <[hidden email]> wrote:
Let's hear from people who find the current Python support policy insufficient for their needs.

Agreed. I'm not one of them, dropping 3.5 support disadvantages me in no way. I don't use it in production or in development, and would have no problem with 3.5 support being dropped.

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CABpHFHSL0uH4f7uDdcwVdeRMZu51tVUkiN7LGZnYWO-CfZV_rA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Carlton Gibson-3
In reply to this post by Tim Graham-2
To be honest, I'm surprised there's even one person who comes within a 1000 miles of this list who's using Python 3.5. :)

My reason for thinking we should follow Python's supported versions is users, and particularly beginning users, who have got they-don't-know version and find a tutorial just what... no sorry need... `pip3 install Django` to work, and give them the version of Django that corresponds to what they see when they visit docs.djangoproject.com. 

I don't agree this is theoretical at all. 

It's not just Debian. (Which doesn't fit my mental model here really...)

It's all those few-years-old computers out there. 

It's for example Raspbian, which as of this month is still shipping Python 3.5. 

So my boy, who's 10, says, 

- What would you use? 
- Well I'd use Django (obviously) 
- Can I use that?
- Yeah... 

If we do drop Python 3.5 I have to say, "Well, no. But you can use this old one." That's not as cool.
But there will be people who are more seriously affected. 

> Who is saying, "I want to use the latest version of Django, but I want to use a really old version of Python."

No one is saying this. The notion of versions doesn't come into it. We're well beyond the barrier-to-entry before we get there. 
I (just my opinion on this) think we mistake our audience if we forget this.  
(For this reason I don't think the deployment issue is the relevant one. It's about people learning to programme, not professionals.) 

We can't support everything forever, and I'm as keen as anyone to push forward, but following Python is (for me) the thing we should do. 
I think Django's position in the Python eco-system requires it. 

Of course if we don't, things are easier for us, yes. 

Again, just my opinion. 
C. 

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/19e099cf-6087-4efd-9138-d338f12bbf2c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: revisiting the Python version support policy

Tom Forbes
This message really resonated with me, especially after helping a few beginners get started with Python and watching them struggle with exactly this kind of thing.

I'd be +1 on following Python. Looking through the diff there is not a huge amount of things to remove and IMO none of them are really holding us back or all that serious. We've fixed some issues with mangling cached property names, some workarounds for ModuleNotFoundError/ImportError and an issue with sqlite3 on 3.5.

On 24 January 2019 at 20:33:42, Carlton Gibson ([hidden email]) wrote:

To be honest, I'm surprised there's even one person who comes within a 1000 miles of this list who's using Python 3.5. :)

My reason for thinking we should follow Python's supported versions is users, and particularly beginning users, who have got they-don't-know version and find a tutorial just what... no sorry need... `pip3 install Django` to work, and give them the version of Django that corresponds to what they see when they visit docs.djangoproject.com

I don't agree this is theoretical at all. 

It's not just Debian. (Which doesn't fit my mental model here really...)

It's all those few-years-old computers out there. 

It's for example Raspbian, which as of this month is still shipping Python 3.5. 

So my boy, who's 10, says, 

- What would you use? 
- Well I'd use Django (obviously) 
- Can I use that?
- Yeah... 

If we do drop Python 3.5 I have to say, "Well, no. But you can use this old one." That's not as cool.
But there will be people who are more seriously affected. 

> Who is saying, "I want to use the latest version of Django, but I want to use a really old version of Python."

No one is saying this. The notion of versions doesn't come into it. We're well beyond the barrier-to-entry before we get there. 
I (just my opinion on this) think we mistake our audience if we forget this.  
(For this reason I don't think the deployment issue is the relevant one. It's about people learning to programme, not professionals.) 

We can't support everything forever, and I'm as keen as anyone to push forward, but following Python is (for me) the thing we should do. 
I think Django's position in the Python eco-system requires it. 

Of course if we don't, things are easier for us, yes. 

Again, just my opinion. 
C. 
--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/19e099cf-6087-4efd-9138-d338f12bbf2c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
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 [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAFNZOJPdaWYJ9LCPZsG9dE66ka%2B8M_8Y4_%2BzMwFNz4er1pXi8w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
12