Add versioning to GabblePluginInterface
@oggis
Submitted by Olli Salli Assigned to Telepathy bugs list
Description
Gabble's plugin callback interface is a bit ad hoc. Bug 44331 details some backwards incompatible changes we need to make to it at the moment... To avoid such changes breaking existing plugins in the future, we should add versioning to the interface, by doing something like:
- add a integer member as the first item in GabblePluginInterface after GTypeInterface
- document somehow that the current version of the plugin interface is 1
- in plugins, fill the interface struct member with the version of the API the plugin was written against
- in code, which calls into plugins... switch/ifelse based on the version member, to use the correct members and expect corresponding behavior for each version
- whenever there's an incompatible change to the plugin API, bump the current version number... but retain the code which calls the old API, for the benefit of old plugins
Let's have this bug depend on the the currently planned incompatible changes, because we only want to declare plugin API version 1 after finishing those.
Version: git master