[Python-Dev] PEP 466: Proposed policy change for handling network security enhancements

Terry Reedy tjreedy at udel.edu
Wed Mar 26 04:59:51 CET 2014


On 3/25/2014 6:15 PM, Nick Coghlan wrote:

> I am not sure how this meme got started, but let me be clear: the
> proposed policy DOES NOT provide blanket permission to break backwards
> compatibility in the affected modules. It only allows ADDING new
> features to bring these modules into line with their Python 3
> counterparts, making it easier for third party packages like requests to
> do the right thing in a cross-version compatible way.

I think the problem is that 'no new features' covers two quite different 
types of 'new' lumped together: change-new and new-new. New-new adds 
something completely new and does not break any sensible behavior that 
we worry about. We freely add new-new features with each new version. We 
do not add them to maintenance releases because then maintenance 
releases would be new versions. There are also considerations of 
incubation time, and the increased possibility of regressions with 
candidate-release versus alpha-beta-candidate-release schedules.

Change-new additions changing existing behavior (like changing a 
default) and can therefore break code that we care about. Even for new 
versions, we are wary them and may require deprecation. One of the 
ironies of change-new is that it is much more similar to change-fix, 
which is allowed as maintenance, than new-new is. The tracker 
controversies are about issues on the borderline between change-fix and 
change-new.

The original version of the PEP reference 434 as precedent. While partly 
valid, the reference could have fed the confusion because 434 does not 
draw the distinction given above. Indeed, part of the point of the PEP 
is that separating change-fix from change-new is difficult. As far as 
regressions go, a big new-new patch touching several untested modules 
worries me more than a small change-??? patch tweaking something in only 
one module, especially after writing tests for the module.

-- 
Terry Jan Reedy




More information about the Python-Dev mailing list