Proposal for plugin management UI

John Whitley whitley at acm.org
Tue Jun 6 00:17:13 BST 2006


Wouter Bolsterlee wrote:
> Long story short: please think from a user perspective. Users don't  
> want to
> install LOTS of plugins if they can get them all at once.

While I agree with the notion of thinking from a user perspective,  
bundling plugins isn't necessarily the best way to achieve ease of  
plugin management.

I'd suggest that one way to manage this is to use bzr itself to  
implement a plugin management system via lightweight checkouts.   
Here's a first pass at a plugin management UI and implementation sketch:

# Searches known Bzr plugin sites for plugin 'Foo', and grabs a  
lightweight checkout
bzr plugin --install Foo

# Install a plugin from the specified plugin site
bzr plugin --install JoesAmazingPlugin --site http://joes-plugins.org/ 
bzr/

# Add a new plugin site
bzr plugin --add-site http://bestbzrplugins.net/plugins/

# Edit the list of known sites
bzr plugin --edit-sites

# Updates the lightweight checkouts for all installed plugins
bzr plugin --update

# Updates the specified plugin
bzr plugin --update JoesAmazingPlugin

# List/query operations
bzr plugin --list-installed [search term]
bzr plugin --list-remote [search term]

# Remove plugins
bzr plugin --remove Foo

Other considerations and proposed solutions include:
* Management of system-wide vs. user-local plugins
   Default to user-local for non-root users on *nix systems, system- 
wide for root users,
   have explicit option to specify local plugin directory

* Dependency management
   If plugins depend on other plugins, then some sort of dependency  
specification and management
   is essential.

Thoughts?  If some form of this proposal is meets with approval, I'll  
write the plugin management plugin (doh!) to test out these ideas,  
with an eye towards its eventual inclusion in bzr core.

If it turns out that there are popular sets of plugins, it would be  
fairly easy to add support  such as:

bzr plugin --install-bundle BzrTools

where BzrTools is simply a file in a standard location on a plugin  
site listing other plugins to install.

Or an alternative, that just installs all plugins from the given URL:

bzr plugin --install-site http://thebestofbzr.com/plugins/

-- John






More information about the bazaar mailing list