Clarifying the plug-ins approach

I was about to submit feedback for an Gramps-related article on “GenealogySoftware.net” via their Contact page. That article is an exemplar of how confusing that even experienced users of software plug-in systems and Genealogy software find the Gramps plug-in ecology.

Thought I’d pass the draft through the community for comment and expansion. The response to this post will be a suggested re-write by Perplexity.

Last September, I read the “A Note on Gramps Plugins/Addons” article by ChadO with interest. There are a few things tangled a bit… but the confusion is understandable. Gramps has a surprisingly intricate layering of complexity.

(The Gramps-project team tends to use the non-hyphenated variants of the generic “plug-in” and “add-on” terms as a “branding” approach. The team feels that the terms are more distinctive and effective as search-engine parameters.)

The plug-in management is acutally the most superficial after the User Configuration/Preferences. The plug-ins can be part of the core (built-in) or add-on.

The core plug-ins evolve infrequently, updates are only distributed with major releases of Gramps. They are considered to be mature and necessary to the broadest audiences of Genealogiest. But add-on plug-ins can (and do) have more frequent updates. These addons might have wishlist items in active development or have appeal to a more narrow audience. (Some rely on libraries that are not compatible with the Gramps licensing or that would bloat the installation.) And addons can be installed/updated manually or automatically on various timings. (The automation was a Preferences feature up to version 5.1 and moved to a more powerful Addon Manager with the 5.2 release of Gramps.)

The Addon Manager uses a metadata approach provided by a publisher of add-on plug-ins. A Gramps addon (note the lack of a hyphen in the term) can collate multiple plugins, collateral files, and localization/translation files. The provider creates downloadable localized archival packages of addons and localized metadata “addon-xx.json” lists (collated from the Gramps Plugin Registration file for each addon collection) in a structured organization of folder. Gramps calls the provider’s publication a ‘Project’. Users add paths (in the Project tab of the Addon Manager) to the “listings” directory of a Project. The provider reputation determines whether users trust them to vet the addons being published. Projects can be published locally, on a local network, or via Hypertext Transfer Protocol Secure (https) on the net.

Providing a “Project” requires a significant effort. Usually it is a cooperative effort between the contributing addon developer and the provider. But contributing addon developer can also just post the addon components to a hosted server, via eMail or even via sneakernet. One developer created a Gramps addon plugin that will install an addon from a ZIP archive of an addon.

The Plugin Manager (or its upgraded addon: “Plugin Manager enhanced”) allows installed plugins (builtin or addon) to be hidden or removed. It also has a “Wiki” button to help users discover the purpose and use of the plug-in. Hiding builtin plugins will disable its functionality and its interface. As an example, Gramps has 3 builtin variants of its Navigator sidebar. (The Navigator is a GUI for switching between view Categories and the view modes within Categories.) Once you decide which GUI you prefer, hiding the other 2 of the 3 Navigator sidebar plugins will simplify the Navigator sidebar and free up a little screen space.

References:

This posting is now a “Wiki” and any registered user can edit to improve it.

Perplexity replies:
Here’s a revised version that incorporates the new information from your draft while maintaining the structure and content of the original:

Last September, I read the “A Note on Gramps Plugins/Addons” article by ChadO with interest. There are a few things tangled a bit… but the confusion is understandable. Gramps has a surprisingly intricate layering of complexity for its plug-in system.

The plug-in management is actually the most superficial customizing feature… after the User Configuration/Preferences. The plug-ins can be part of the core (built-in) or add-on.

(The Gramps-project team tends to use the non-hyphenated variants of the generic “plug-in” and “add-on” terms as a “branding” approach. The team feels that the terms are more distinctive and effective as search-engine parameters.)

The core plugins evolve infrequently, updates are only distributed with major releases of Gramps. They are considered to be mature and necessary to the broadest audiences of Genealogists. But addon plugins can (and do) have more frequent updates. These addons might have wishlist items in active development or have appeal to a more narrow audience. (Some rely on libraries that are not compatible with the Gramps licensing or that would bloat the installation.) And addons can be installed/updated manually or automatically on various timings. (The automation was a “General” Preferences feature up to version 5.1 and moved to a more powerful Addon Manager with the 5.2 release of Gramps.)

The Addon Manager uses a metadata approach provided by a publisher of add-on plug-ins for Gramps. A Gramps addon (note the lack of a hyphen in the term) can collate multiple plugins, collateral files, and localization/translation files. The provider creates downloadable localized archival packages of addons and localized metadata “addon-xx.json” lists (collated from the Gramps Plugin Registration file for each addon collection) in a structured organization of folder. Gramps calls the provider’s publication a ‘Project’. Users add paths (in the Projects tab of the Addon Manager) to the “listings” directory of a Project. The provider reputation determines whether users trust them to vet the addons being published. Projects can be published locally, on a local network, or via Hypertext Transfer Protocol Secure (https) on the net.

Providing a “Project” requires a significant effort. Usually it is a cooperative effort between the contributing addon developer and the provider. But contributing addon developer can also just post the addon components to a hosted server, via eMail or even via sneakernet. One developer created a Gramps addon plugin that will install an addon from a ZIP archive of an addon.

The Plugin Manager (or its upgraded addon: “Plugin Manager enhanced”) allows installed plugins (builtin or addon) to be hidden or removed. It also has a “Wiki” button to help users discover the purpose and use of the plug-in. Hiding builtin plugins will disable its functionality and its interface.

As an example of the benefits of “hiding” plugins, Gramps has 3 builtin variants of its Navigator sidebar. (The Navigator is a GUI for switching between view Categories and the view modes within Categories.) Once a user decides which GUI they prefer, hiding the other 2 of the 3 Navigator sidebar plugins will simplify the Navigator sidebar and free up a little screen space.

References: