[Twisted-Python] incompatible change in 15.3 - something reviewers should look for

Jonathan Lange jml at mumak.net
Wed Aug 12 04:46:11 MDT 2015


On Wed, 12 Aug 2015 at 07:25 Adi Roiban <adi at roiban.ro> wrote:

> On 12 August 2015 at 01:24, Glyph <glyph at twistedmatrix.com> wrote:
>
> > We discovered this because this change breaks
> > https://github.com/twisted/axiom, and probably it breaks other packages
> as
> > well, since lots of things inherit from Service.  So please remain
> diligent
> > about looking for this in future changes.  Now that it's been changed,
> > reverting it in 15.4 would be another incompatible change, so we probably
> > won't do that, but please keep an eye out in the future.
>
> I assume that this is the error in axiom:
> https://github.com/twisted/axiom/issues/44
>
> In axiom a class was defined as
>
> class _SiteScheduler(object, Service, SchedulerMixin)
>
> Is this a common practice?
> Why do you want to have multiple inheritance and put object as the
> first inherited class and not the last one?
>
>
>From the perspective of Twisted development, why does it matter?

Changing a class from old style to new style changes the method resolution
order, which is going to break lots of code in ways that we can't
anticipate. We can't find every subclass and judge whether their usage
makes sense. We can only stick to our compatibility policy
<https://twistedmatrix.com/trac/wiki/CompatibilityPolicy>, which empowers
users to decide when & how they change their weird code.

jml
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20150812/ac50b773/attachment-0002.html>


More information about the Twisted-Python mailing list