I’ve given this some thought and have come up with a suggestion for a step in the direction of shareable plug-ins.
On the developer-end, in any GUI, it would appear as a + button that open an explorer. In this explorer is a list of all plug-ins produced by anyone who made and registered one in a central registry. The developer could then pick any number of plug-ins to include in the current publishing session.
The idea would be that this would be a quick way of evaluating other plug-ins in a new environment - yours - before going ahead and installing it. Installing it would then be a matter of downloading it onto a
PYBLISHPLUGINPATH as any other plug-ins, where each plug-in or plug-in collection would/could have it’s own documentation and so forth.
I think the step of having a “rapid prototyping” method of evaluating plug-in is important, especially during early days of getting to terms with how plug-ins can truly be independent of the environment in which they were developed.
Technically, plug-ins are already read as a file and passed to
exec, which means we could easily and transparently load text via the web and pass that to Pyblish at run-time without restart. Plug-ins could then be registered as plain text in something along the lines of Firebase where we could also view and edit those plug-ins.
Later on, once we’ve established rules and best practices on how to write shareable plug-ins, odds are we won’t need this initial prototyping phase as much, but I would still expect it to be the go-to first step in evaluating any plug-in.
The work required would be (1) a central spot, such as Firebase which is free and easy to get setup and (2) a GUI for visualising and browsing the plug-ins. Assuming (3) the act of actually loading and running the plug-in at run-time is straightforward.
Let me know your thoughts.