[Twisted-Python] Backward incompatible fixes to backward incompatible changes
Evilham
contact at evilham.com
Tue Apr 30 04:10:25 MDT 2019
Jean-Paul Calderone <exarkun at twistedmatrix.com> writes:
> On Thu, Apr 25, 2019 at 12:52 PM Jean-Paul Calderone <
> exarkun at twistedmatrix.com> wrote:
>
>> Hello all,
>>
>> I'd like to discuss the project policy/process for dealing with
>> incorrect
>> backward incompatibilities that end up released.
>>
>
> Considering the lack of interest in the topic, I'm going to
> suppose that
> there is no policy and the decision is made case-by-case. In
> the case I
> referenced, I'm going to approve the change in behavior as
> "compatible" by
> on the grounds that it restores the original behavior.
What you say makes sense and, as read on one of the tickets, if
there *is* a need for that situation to raise an error:
`AttributeError` certainly isn't the kind of error.
So that should be a totally different discussion.
As for a general policy: it doesn't look like this situation
happens often enough for there to be a need for one (de facto,
indeed that means that it is made on a case-by-case basis).
Effort in general should be to prevent the situation from
happening, which everyone regularly involved in Twisted does a
great job at already.
Basically: ACK, fully agreed, you are not talking to the void.
>> As a case study, we could look at
>> https://twistedmatrix.com/trac/ticket/9410
>> <https://twistedmatrix.com/trac/ticket/9410#comment:17> /
>> https://github.com/twisted/twisted/pull/1106
>>
>> In Twisted 16.3.0 the behavior of Request.write was changed so
>> that it
>> raises an AttributeError if called after the connection has
>> closed. Prior
>> to that release, it silently did nothing in that case.
>>
>> Now, three years later, we have a PR which proposed restoring
>> the behavior
>> of silently ignoring the write to a closed connection.
>>
>> The original change was incompatible. The new change is
>> incompatible.
>> What should win out?
--
Evilham
More information about the Twisted-Python
mailing list