At the moment MC has a very large plugin API, which we can't keep stable for very long at a time due to internal refactoring; as a result, we've turned off plugin support in Debian and recommend that all distributions do the same. This is basically rubbish. My mini-plugins branch sketches out a GInterface-based API which could replace this; it's not currently active, because I haven't put the necessary glue into src/ to implement the GInterfaces and invoke plugins at the right times. General design: * McpRequest and McpDispatchOperation are implemented via an uninstalled header (implementation.h), so only MC can implement them * McpRequestPolicy and McpDispatchOperationPolicy are implemented by plugins; they use the "hidden vtable" trick from telepathy-glib, to be expandable (obviously, any functions we add later would have to have sensible behaviour if left unimplemented - "do nothing", probably) * mcp_plugin_ref_nth_object() is implemented by plugins and allows the plugin to return one or more objects that implement McpRequestPolicy and/or McpDispatchOperationPolicy <http://git.collabora.co.uk/?p=user/smcv/telepathy-mission-control-smcv.git;a=shortlog;h=refs/heads/mini-plugins> Not tagging 'patch' since it's just a sketch at the moment.
Two branches for review. I'm not very happy with the test coverage stats for these branches, but they do seem to work...
Vivek has reviewed smcv/dispatcher-plugin and smcv/request-plugin, and has no complaints except that it's not clear how to actually write a plugin :-) This branch adds a bit of documentation for everything except McpRequest: http://git.collabora.co.uk/?p=user/smcv/telepathy-mission-control-smcv.git;a=shortlog;h=refs/heads/plugin-doc I plan to document McpRequest after the branch smcv/requests has been merged, since that branch makes McpRequest significantly more capable (it adds the ability to delay requests, an older API for which is used in Maemo 5 to delay requests until the user has been prompted to exit offline mode). -------- Subsequent things to do to close this bug: * get smcv/requests reviewed and merged: http://git.collabora.co.uk/?p=user/smcv/telepathy-mission-control-smcv.git;a=shortlog;h=refs/heads/requests * document McpRequest * let plugins influence how accounts are stored (goal: turn gnome-keyring integration, and similar concepts in Maemo 5, into plugins) * work out how to turn the connectivity API (as used in Maemo 5) into a plugin too
Repurposing this as a metabug.
(In reply to comment #2) > * get smcv/requests reviewed and merged: > http://git.collabora.co.uk/?p=user/smcv/telepathy-mission-control-smcv.git;a=shortlog;h=refs/heads/requests Bug #25715 > * document McpRequest Cloned as Bug #27363 > * let plugins influence how accounts are stored (goal: turn gnome-keyring > integration, and similar concepts in Maemo 5, into plugins) Done, by Vivek > * work out how to turn the connectivity API (as used in Maemo 5) into a plugin > too Cloned as Bug #27364
> http://git.collabora.co.uk/?p=user/smcv/telepathy-mission-control-smcv.git;a=shortlog;h=refs/heads/plugin-doc Cloned as Bug #27633
I started removing deprecated telepathy-glib things from MC, and then got carried away and deleted (among other things) all the mcd_* stuff, some remnants of ContactCapabilities.DRAFT1, and Capabilities (ContactCapabilities' predecessor). 85 files changed, 276 insertions(+), 4202 deletions(-)
I've split out Bug #49648, Bug #24899, Bug #24914 to make the branch a little less intimidating. It's now 46 files changed, 121 insertions(+), 3629 deletions(-)
I'm not sure about some of this inlining. Keeping code paths in separate functions is nice. Never mind though. (In reply to comment #7) > 46 files changed, 121 insertions(+), 3629 deletions(-) Very impressive. I assume stuff still passes, so r+.
Thanks, fixed in git for 5.13.0
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.