I propose to tentatively target Python 3.5+ for Django 2.0 but not to remove the current workarounds for Python 3.4 at this time. Shortly before the alpha for Django 2.0, an interested person can look into how much work is required to fix any test failures on Python 3.4 and we'll make a decision then.
On Sunday, January 8, 2017 at 8:52:13 PM UTC-5, Cheng Chi wrote: > > +1 on type hinting. PyCharm always gives me 20+ options when I want to > jump to the definition of modelInstance.save() method (or any other method > with a common name like save), which makes me really miss static type > languages... As the framework for perfectionists with deadlines, I think > type hinting (with IDE) does help a lot on productivity for many developers > who are not experts on Django core. > > Since django core is considerably mature and no major new feature is on > the horizon currently, I'd like to see more python language features > adopted as django evolving. > > On Sunday, January 8, 2017 at 6:43:46 PM UTC+11, roboslone wrote: >> >> I do not think this matters, first off there is no commitment from our >> side on type hinting or anything. We do not have any DEP or something >> related and didn't even discuss if we actually want type hinting. >> Personally I am kinda against it anyways, since it clutters the code for >> not much gain. So if we were to do it, I would prefer stub files anyways, >> in which case we won't depend on any python version as far as I understood >> that. >> >> >> As Django user, I have to say type hinting would help a lot to understand >> how things work in Django without looking at docs. It could save a lot of >> time for beginners, too. Also I have to mention, that PyCharm (which is the >> most popular IDE for Python, I believe) has support for type hinting and >> could help you avoid many problems before even firing up a server. >> >> In my opinion not adding type hints in Django 2.0 would be a mistake. >> >> "Django 2.0 will be the last version of Django to support Python 3.4. >> This allows those running older operating systems with Python 3.4 (such as >> Ubuntu 14.04 and CentOS 6) to use the latest version of Django for an >> additional eight months. If you don't intend to upgrade to a system with >> Python 3.5 or later by the end of security updates for Django 2.0 in April >> 2019, stick with Django 1.11 LTS which is supported until April 2020." >> >> >> As to Python 3.4 support, Django 1.11 will be LTS and most projects >> written with Django <=1.10 will probably stay on LTS version. Using Django >> 2.0 in existing project would require rewriting some bits anyway (correct >> me if I'm wrong), so there's really not much point in sticking to Python >> 3.4/3.5 in my opinion. If you're rewriting your code to use new version of >> Django, you could as well use new version of Python. Isn't it the whole >> point of major release? >> >> Sticking to 3.6 would allow using format strings, and that would greatly >> increase readability (looking at %-strings here). To be honest, using >> str.format on string with many variables can hurt readability almost as >> much as % does. Also, variable annotation only appeared in 3.6, so >> supporting Python 3.5 an older would mean that variable annotation is only >> possible using comments (which is not necessarily a bad thing, tough it has >> some downsides as pointed out in PEP-526). >> >> I have to add, that nowadays deploying python applications with desired >> version of Python is fairly easy. One could use relocatable virtualenvs, >> Docker containers and so on. So even if you're on an outdated distro (or >> something like RHEL, that wouldn't get new python version in ages, >> probably) and your OS is stuck with older version of Python, your >> application doesn't have to be. >> >> Since there're a lot of Django users out there who aren't subscribed to >> this mailing list, I suggest to sum up this discussion in a blog post and >> let users vote. I believe a big "Help decide Django 2.0 fate" button on >> djangoproject.com would attract much more attention to the issue. Maybe >> most of Django users are ready to migrate to Python 3.6 when they switch to >> Django 2.0 (probably not, but who knows) and developers could start >> enjoying new Python features a year or two earlier. >> >> P.S. Please treat everything above as a personal opinion, I'm probably >> wrong about some things. And sorry for a bad English, it's not my native >> language. >> >> On 7 Jan 2017, at 19:48, Tim Graham <[email protected]> wrote: >> >> Daniele, here's my try at being more concrete than "It seems reasonable" >> and "decent ledge of overlap". Let me know if you meant something different! >> >> "Django 2.0 will be the last version of Django to support Python 3.4. >> This allows those running older operating systems with Python 3.4 (such as >> Ubuntu 14.04 and CentOS 6) to use the latest version of Django for an >> additional eight months. If you don't intend to upgrade to a system with >> Python 3.5 or later by the end of security updates for Django 2.0 in April >> 2019, stick with Django 1.11 LTS which is supported until April 2020." >> >> I'd rather not allow Python 3.4 users to strand themselves on Django 2.0 >> when sticking with 1.11 would provide longer security support (lesson >> learned from Python 2.6 users stranded on Django 1.6), but hopefully >> documenting this danger will help prevent that this time around. >> >> On Saturday, January 7, 2017 at 6:30:23 AM UTC-5, Daniele Procida wrote: >>> >>> On Sat, Jan 7, 2017, Florian Apolloner <[email protected]> wrote: >>> >>> >Not sure on how we'd put that into text, but something along the lines >>> of >>> >"we will support 3.4+ as long as feasible for us to do so" -- though I >>> do >>> >understand that this is like the same as saying: "We'll just support >>> what >>> >we want, how long we want" :D >>> >>> For the purposes of being reassuring, it needs to be concrete, otherwise >>> we're just moving people's doubt and uncertainty around! >>> >>> >>> It seems reasonable that Django 2.0 should continue to support Python >>> 3.4, and that Django 2.1 should not. That provides a decent ledge of >>> overlap for those climbing up these tricky upgrade paths to rest on and >>> catch their breath. >>> >>> Daniele >>> >>> >> -- >> 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 [email protected]. >> To post to this group, send email to [email protected]. >> 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/68cfdafc-730c-42bb-a772-4f17193645f5%40googlegroups.com >> >> <https://groups.google.com/d/msgid/django-developers/68cfdafc-730c-42bb-a772-4f17193645f5%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> 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 [email protected]. To post to this group, send email to [email protected]. 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/d85b04e9-211a-4c31-b210-26c9670ae6be%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
