
On Wed, 12 Aug 2015 at 07:25 Adi Roiban <adi@roiban.ro> wrote:
On 12 August 2015 at 01:24, Glyph <glyph@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