From: Elvis on
Say, a Standard Library function works in a way it was not supposed
to.

Developers (who use Python) handle this issue themselves.
And then, you (a python-core developer) fix the behavior of the
function.

Although you have “fixed” the bug, anyone who upgrades, will be in
trouble.
Their code may no longer work.

How do you go about this issue?
How do you fix things without breaking down existing systems?
From: exarkun on
On 10:02 am, elvismoodbidri(a)gmail.com wrote:
>Say, a Standard Library function works in a way it was not supposed
>to.
>
>Developers (who use Python) handle this issue themselves.
>And then, you (a python-core developer) fix the behavior of the
>function.
>
>Although you have 1Cfixed 1D the bug, anyone who upgrades, will be in
>trouble.
>Their code may no longer work.
>
>How do you go about this issue?
>How do you fix things without breaking down existing systems?

CPython itself has no policy about such things. Each case is handled
independently by whomever is working on it.

http://twistedmatrix.com/trac/wiki/CompatibilityPolicy might be
interesting, though. The general idea there (and I'm not sure how well
it's actually expressed there) is that if you want new behavior, then
(with a few exceptions) you add a new API: you don't change an existing
API.

Jean-Paul