Given that different combination of plugins can be enabled, how do we
prevent (or at least minimize) issues between them?

I'll give an example:

Plugin A's x breaks when Plugin B's y happens in case C.

Another example:

Plugin A doesn't want x, y, or z to happen from any other plugin in case
C.

A real example:

The Realtime plugin's popup window throws a JavaScript error from
Mapstraction because it is trying to do its thing in a place where it
shouldn't and it halts something Realtime is trying to do.

Obviously a simple fix would be to make sure that Mapstraction only does
its thing where it really should. I'd like to think that each plugin
should only be responsible for itself, however, the problem in general
remains as it is difficult to make sure every plugin is flawless at all
times or come into conflict with another for unknown reasons. Edge-case?

So, based on that premise, I presume it follows that each plugin may
need to have some control over the availability of other plugins (in
some situations) or at least be aware of their existence. By 'control',
I only mean conflict prevention, and certainly not giving the ability to
disable every other plugin or do any potentially dangerous refactoring
of other plugin's code. If we want this sort of a control within a
plugin (or perhaps from a neutral plugin), how do we go at it?

In any case, before taking that route, I'd like to first know if our
plugin system has a way to handle these potential conflicts between
plugins that I'm overlooking, or if there is an existing approach out
there we can adopt? Do you know how MediaWiki or WordPress goes at it?

-Sarven

_______________________________________________
StatusNet-dev mailing list
[email protected]
http://lists.status.net/mailman/listinfo/statusnet-dev

Reply via email to