[Python-Dev] Removing the provisional label from pathlib

Terry Reedy tjreedy at udel.edu
Tue May 24 13:06:00 EDT 2016


On 5/24/2016 10:49 AM, Paul Moore wrote:
> On 24 May 2016 at 15:11, Koos Zevenhoven <k7hoven at gmail.com> wrote:
>>> Please, no.  We learned that lesson in Python 2.2.1 with True/False.
>>
>> What happened? True was included in 2.2.1 but not False?-). Anyway, I
>> guess you are probably right, and "3.6->" is the way to go. Besides,
>> Guido already wrote that in the first response.

He did so because our policy rightly forbids changing os.

> The history is at
> http://python-history.blogspot.co.uk/2013/11/the-history-of-bool-true-and-false.html
> but basically we added new *constants* for True/False in a point
> release. Some people used them, and their code only worked on 2.2.1
> and above but not 2.2.0. Others were using variables called True and
> False, and the 2.2.1 change broke their code (you could no longer
> assign to those names).
>
> So essentially it ended up that people couldn't say "works on 2.2" and
> had to distinguish between 2.2.0 and 2.2.1+.
>
> Python's strict backward compatibility rules basically stem from the
> grief caused by that change.

The policy was reinforced by its violation in changing the behavior of a 
StringIO method in 3.1.2 or something like that.  For people affected 
(like me), the change resulted in a subtle bug that only manifested later.

-- 
Terry Jan Reedy



More information about the Python-Dev mailing list