[Chandler-dev] Yet another proposal for Chandler plugins
vajda at osafoundation.org
Fri Feb 9 16:24:24 PST 2007
After a lengthy conversation with PJE, I think the following is a much better
proposal for handling plugins than what I've been floating before and it
should make everyone happy as well:
1. Instead of shipping plugins, we should use cheeseshop for publishing
This has the following advantages:
- We don't ship plugins anymore (makes Heikki happy)
- We get a Chandler category on the cheeseshop site, making it easier
for people to find or publish their own Chandler plugins.
In order to get such a category, we (me) need to upload a few plugins
(around three) and send them mail requesting it.
- Every plugin gets a home page at cheeseshop that is easy to find
- sets expectations as to the level of quality and support for it
- documents how to intall it or how to get/view its sources
- otherwise documents its limits, scope, usage, capabilities, etc...
That home page can be part of the plugin's long description or can
be a link to our wiki.
In other words, there already is infrastructure for plugin discovery that
we should leverage instead of rolling our own: cheeseshop.
2. We should not ship the "projects" directory but instead create a
"plugins" directory into which Chandler plugins would be installed by
the end-user downloading them. That directory would be used both by the
end-user to drop-in downloaded plugin eggs and by the end-developer for
installing their own plugin(s). Our python setup can make sure the
"plugins" directory is where things go to by default.
This "plugins" directory doesn't conflict with our own "projects"
directory in any way.
The indispensable "projects" such as egg-translations should move to
"external", "internal", or "parcels".
3. We (me) should add a "Plugins" menu / UI facility that scans what is in
that "plugins" directory so that the end-user can:
- query which plugins are installed / not installed
- point the default web browser to the 'Chandler' cheeseshop page
(once we have a 'Chandler' category there)
- download and install a plugin from cheeseshop
- install a plugin
- uninstall a plugin with repository cleanup that, in order of
preference does one of the following:
a. deletes all items created by the plugin
b. undoes all repository versions since the plugin was installed
c. restores a repository backup
d. replaces the repository with a new, fresh one
It important that this be done by Preview so that we can shake out bugs in
both the setup, PJE's setuptools and have a solid solution for 1.0.
More information about the chandler-dev