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

Adi Roiban adi at roiban.ro
Wed Aug 12 00:24:46 MDT 2015


Hi,

Thanks for the notice!

On 12 August 2015 at 01:24, Glyph <glyph at twistedmatrix.com> wrote:
> In https://twistedmatrix.com/trac/changeset/45163
> twisted.internet.application.service.Service to be a new-style class.  Just
> to remind everyone, converting an old-style class to a new-style class is an
> incompatible change, and reviewers should look for this.

I have updated the wiki page to include this note and the reason why
we need this.

https://twistedmatrix.com/trac/wiki/Plan/Python3#Reviewerchecklist

Please check that wiki page is ok.

In my defense :)
Amber warned me about such changes, but when I asked (over IRC) why
they are bad I did received any convincing reason :)

> 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?

Regards,
-- 
Adi Roiban




More information about the Twisted-Python mailing list