Bug 44535 - Add versioning to GabblePluginInterface
Summary: Add versioning to GabblePluginInterface
Alias: None
Product: Telepathy
Classification: Unclassified
Component: gabble (show other bugs)
Version: git master
Hardware: All All
: medium enhancement
Assignee: Telepathy bugs list
QA Contact: Telepathy bugs list
Depends on: 44331 44649 46245
  Show dependency treegraph
Reported: 2012-01-06 08:53 UTC by Olli Salli
Modified: 2019-12-03 19:54 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Description Olli Salli 2012-01-06 08:53:00 UTC
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
- 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
- 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.
Comment 1 GitLab Migration User 2019-12-03 19:54:55 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/telepathy/telepathy-gabble/issues/198.

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.