Do

Use Mono.Addins to make plugin management painless

Registered by David Siegel

Currently, simple library assemblies are loaded from ~/.do/plugins. This should be made much more robust using Mono.Addins.

Blueprint information

Status:
Complete
Approver:
David Siegel
Priority:
Medium
Drafter:
David Siegel
Direction:
Needs approval
Assignee:
None
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
David Siegel
Completed by
David Siegel

Sprints

Whiteboard

The location of addins is described here: http://www.mono-project.com/Mono.Addins_Reference_Manual#Add-in_Discovery

In short, user addins will be stored in .config/gnome-do/addins, and system-wide addins should be in the same folder as Do.exe.
The addin manager will take care of loading addins from the user-directory first, then from the system-wide directory. Addins that are automagically installed by the graphical addin manager will be installed in the user directory (.config/gnome-do/addins).
If we want to put the system-wide addins in another folder than the one that contains Do.exe, we can put a Do.addin file containing something like this next to Do.exe:
<Addins>
 <Directory>../addins</Directory>
</Addins>

Guillaume
--
Some work with Mono.Addins. For now, LoadAssembly has been implemented (addins loaded from ~/.do/addins).

---
This would be cool if it could also load from some system-wide directory. For instance, if I package the addins and it's installed, all users should be able to load the addins installed by the package. --Rick

Sure thing. Looks like Tomboy uses /usr/lib/tomboy/addins or something along those lines. I am very unfamiliar with Make, which is what we would have to use to specify a installation detail like this for our addins. Maybe ask someone who's more experiences with this or look at Tomboy's makefiles. --Dave

---

Talking with people in #ubuntu-motu it seems there a spec for this kind of thing here:
http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html
If I echo the env. variable $XDG_DATA_DIRS the first path is /usr/share which was recommended. So I'd suggest a standard directory for plugins as /usr/share/gnome-do/addins. Then I can work on getting the .dll files in there on package installation. --Rick

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.