(rfc) recommend installing a plugin when needed
Martin Albisetti
argentina at gmail.com
Mon Jan 28 08:23:30 GMT 2008
I've been giving this spec more thought, so I thought I'd dump it into
the list and see if I'm on the right track.
Things I think this plugin should provide:
- A hook that checks if the command executing is available as a plugin
if all else failed, telling the user how he can install it (ie. bzr
fetchplugin plugin-name)
- Install new plugins from a trusted source
- Install plugins from a possibly arbitrary URL with a switch like --url
- Update one or all plugins
- Remove any installed plugins
- List all plugins available
- Be pluggable to add a per-platform plugin that handles possible
external dependencies
How:
- All plugins would be installed by doing a lightweight checkout into
the users plugin folder, avoiding having to use a new transport method
- Plugins can then be updated using a simple "bzr update" internally
- Would allow for the plugins to live in different locations rather
then a central one (although it's probably best if we do have a
central repository, that would also mean delays in keeping the plugins
up to date)
- Have an XML file hosted on the bazaar-vcs.org server which contains
the information of all available plugins with the necessary
information (commands it provides, description, etc)
What remains to be thought through is how we would handle external dependencies.
Now, a few questions.
Would this go right into the Core, or just tweak what would be needed
and develop it as a plugin?
Would be add the plugins information to the XML manually or would we
require plugins export the information needed somehow?
The way I'm looking at it, this would end up managing plugins in
general, going a bit beyond what I think initially was proposed.
At first it seemed like too much to handle adding/updating/removing
plugins, but after thinking it through a bit, by using bzr itself to
do this, it seems far more approachable.
I'm already starting to jump into some coding to cook up a demo of how
it would work, but I'm rather anxious to get some feedback on where
I'd like to go with this.
I'll add whatever comes out of this thread to the specification on the wiki.
Cheers,
Martin
More information about the bazaar
mailing list