[gnome-builder] plugins: add details on plugin interface age
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] plugins: add details on plugin interface age
- Date: Wed, 27 Jan 2016 07:16:22 +0000 (UTC)
commit 848dc32b1cfa33f90620bbf6fd2d8f44801703d3
Author: Christian Hergert <chergert redhat com>
Date: Wed Jan 27 07:40:04 2016 +0100
plugins: add details on plugin interface age
libide/ide-application-plugins.c | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/libide/ide-application-plugins.c b/libide/ide-application-plugins.c
index 2b283b8..5f7354b 100644
--- a/libide/ide-application-plugins.c
+++ b/libide/ide-application-plugins.c
@@ -51,6 +51,24 @@ ide_application_can_load_plugin (IdeApplication *self,
/*
* TODO: Do ABI check on external data.
+ *
+ * Right now, we don't have any way to check that the plugin is implementing
+ * the same version of the API/ABI that the application exports. There are a
+ * couple ways we could go about doing this.
+ *
+ * One approach might be to generate UUIDs for each plugin structure,
+ * and update it every time the structure changes. However, plenty of changes
+ * can be safe for existing modules. So perhaps we need something that has
+ * a revision since last break. Then plugins would specify which version
+ * and revision of an interface they require.
+ *
+ * Imagine the scenario that FooIface added the method frobnicate(). Previous
+ * extensions for FooIface are perfectly happy to keep on working, but a new
+ * addin that requires FooIface may require frobnicate()'s existance. So while
+ * the ABI hasn't broken, some plugins will require a newer revision.
+ *
+ * This is not entirely different from libtool's interface age. Presumably,
+ * Gedit's IAge is similar here, but we would need it per-structure.
*/
return TRUE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]