[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