GEPS 005: Enhanced Plugin Interface
Proposed changes for enhancing GRAMPS by updating the plugin interface to:
- be more flexible for future changes
- be more consistent across different types of plugins
- be more abstract
The current plugin architecture is quite nice, and allows many different types of features to be added by users, or by developers. However, it needs to be updated so that it can support all of the different types of current and future plugins.
There are a fixed number of parameters that one can use in defining each plugin type. Some plugins have had to be adapted to handle additional needs (like user interactions via a GUI). There is a middle layer of code that connects the plugin code with the plugin type. In this code there are places where the args get passed around like (item, item, item, item) depending on the plugin type. In addition, some plugins have to go all the way down to the graphics interface (gtk).
- update all of the reports to use abstract options ("menu" options) (see discussion here http://www.nabble.com/RFC%3A-Improving-report-options-tf4381788.html#a12491034)
- move each plugin registration and handler from its current specific register_TYPE() to generic register(type=TYPE)
- rethink each plugin to be a well-defined API
This proposal is discussed here:
If you have ideas, comments, or questions, please note them here.