Hello Dev-Platform:

tl;dr:
As discussed in the platform meeting today, we're looking at adding a
checking script to verify that IIDs are changed along with interfaces
from now on. The relevant bug is
https://bugzilla.mozilla.org/show_bug.cgi?id=477166

Full Text:

In light of recent breakages of plugins/addons caused by changing
interfaces without changing IIDs associated with these interfaces, Alex
has asked me to post a summary of what we're trying to do to prevent
future issues like this.

First, let me summarize the issue for those unfamiliar (although, that's
probably a minority of us, since many get caught with this sooner or later):

We sometimes make changes to interfaces that are publicly visible via
IDL. These changes are necessary for our continued development, and we
do not guarantee interface compatibility between releases. However, in
order for binary addons to be compatible, they sometimes will check to
verify if the binary version of a particular interface has changed using
the IID. Any time an interface changes, the IID needs to be changed as
well.

Unfortunately, this is an easy thing to forget to do, and an even easier
thing to miss during review. Even more unfortunate is that we don't know
(currently) about these changes until after release (as that's when the
plugins users are using break). So, after each of the last few release
cycles, we've had issues with this, (and, I will definitely admit that
the last couple have been as a result of my code - for that, I apologize).

To fix this problem, it was identified in 2009 that we should have a way
of automatically reporting changed interfaces that don't have associated
IID changes ( https://bugzilla.mozilla.org/show_bug.cgi?id=477166 ). It
got a lot of traction from Dave Townsend, but ultimately remains
unfinished. It's in a somewhat bitrotted state, now, and may be
unrecoverable since our build system has since changed.

Since I've written a small script that helps me, personally, remember to
rev IDL files prior to check-in, akeybl has asked me to look into fixing
this issue. If you're interested or worried about how this might affect
you in the future, I urge you to bring up these issues in the bug. I
likewise urge you to bring up ideas in the bug that you might have that
will allow us to do this in a way that is least intrusive to developers
as possible.  Right now, the ideas are to run an hg pre-commit hook, run
a script as part of the tbpl build, or possibly run a script as part of
a merge (e.g. from mozilla-inbound -> mozilla-central, mozilla-central
-> mozilla-aurora, etc...).

Also, any questions can be directed to either myself or bsmedberg.

~Scott
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to