On Tue, 24 Jan 2017 at 13:26 Neil Schemenauer email@example.com wrote:
On 2017-01-24, Victor Stinner wrote:
You should take a look at this old deferred PEP: https://www.python.org/dev/peps/pep-0407/
Thanks, that's very close to what I was thinking. I would still add that we should be extra careful about incompatible language features until 2.7.x usage has mostly died off. That isn't logically part of the PEP but a general development philosophy I think we should adopt.
In terms of the stdlib we have already committed to not remove any code until after 2.7 hits EOL : https://www.python.org/dev/peps/pep-0004/#for-modules-existing-in-both-pytho... (but I suspect will be stretched until we decide to release Py4k).
We also have had a language change moratorium for Python 3.2: https://www.python.org/dev/peps/pep-3003/ . That was done in hopes of PyPy and other interpreters would use the time to catch up, but that never materialized.
But as Alex pointed out, part of the problem is people don't want to switch unless they have a compelling reason to that they can materially point to. For instance I have heard plenty of people say that async/await and f-strings are reasons enough for them to switch, not the fact that Python 3 has a more consistent design while now matching Python 2.7's overall performance.
I should also say that I think Python 3.6 is a rare release. With async opening up so many doors for consistency in the language it led to a lot of changes there. But then again Python 3.6 also had a whole PEP dedicated to adding a 'fold' argument to datetime. And in Victor's case a lot of stuff was performance stuff that's under the covers and not really exposed directly to the user anyway so no language moratorium would have changed things.
While I like the idea of PEP 407 if we stop doing bugfix releases for non-LTS releases and everything is considered provisional until it lands in an LTS release, I think we will have to see if GitHub helps or hurts our release process. If it makes it easier to cut releases then maybe it will be okay (that's something current and former RMs and their cohorts should be the ones to answer). But I'm also happy with waiting until 2020 to think about this -- which is 2 feature releases away -- or to make PEP 407 a Py4k thing.