On Wed, Dec 4, 2019 at 1:26 PM Victor Stinner <vstinner@python.org> wrote:
INADA-san:
We need to avoid major breakage. But we accept small breakages on every minor release. And u-prefix is major for now.
IMHO we need a metric to measure the risk of an incompatible change: estimate the percentage of broken Python applications. For example, run the test suite of the PyPI top 100 projects with the incompatible change and see how many fails. That's the root of the PEP 608 -- Coordinated Python release: https://www.python.org/dev/peps/pep-0608/
The "PEP 606 -- Python Compatibility Version" elaborates on incompatible changes: https://www.python.org/dev/peps/pep-0606/
These two PEPs have been rejected since the proposed concrete changes which were not the best options.
It seems like the common denominator is the need for a tool to run the testsuite of popular projects on a modified Python and/or the master of Python, to measure how many projects are broken by recent Python changes.
It's very different if an incompatible change break 1% or 90% of Python projects.
Unfortunately there is a distinctive bias if you select popular projects, or even packages from PyPI. There is a very large body of work that never appears there, but is nonetheless used, useful and maintained lacklusterly enough to pose a big problem for changes like these. Tutorials, examples in documentation, random github repos, plugins for programs that embed Python, etc. The latter also represents an example of cases where you can't just decide to use an older version of Python to use something that wasn't updated yet. It's not just about how much code it will break, but also about how easy it is to work around the problem or fix the code for users of it. In the specific case of u"", it seems clear to me that we should silently deprecate it, discourage its use, provide tools to get rid of them, and wait another five or more years before considering a noisier deprecation.
Right now, we take decisions on assumptions without validating them. We push changes and hope that we don't break too many projects. It's rare that we revert incompatible changes that break too many projects, because too few developers test their projects on the beta versions of Python. Most developers and users only test final Python versions.
Victor _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/XJ7PF3GI... Code of Conduct: http://python.org/psf/codeofconduct/
-- Thomas Wouters <thomas@python.org> Hi! I'm an email virus! Think twice before sending your email to help me spread!