Plugin Manager Module
Plugins are Modules that are not part of the Helma distribution. The plugin manager is a module that automates the process of installing, updating and uninstalling plugins in Helma NG.
The initial plugin manager implementation is scheduled for Helma 0.3 and will have a shell interface. Later versions may feature an additional web interface.
A typical plugin manager session may look like this:
helma> importModule('helma.plugins', 'plugins'); helma> plugins installed: 3 plugins updatable: 1 plugin available: 2 plugins helma> plugins.updatable module name: profiler installed: 0.2 available: 0.3 helma> plugins.updateAll() fetching profiler... done updating profiler... done helma> plugins.available module name: markdown author: ... version: 0.1 module name: test author: ... version: 0.3.1 module name: imageutils author: ... version: 0.6 helma> plugins.describe('test') module name: test version: 0.3.1 author: Foobert Meyer <email@example.com> description: A unit testing framework for Helma NG. Version 0.3.1 features enhancements in the shell interface and a redesigned web interface. helma> plugins.install('test') fetching test... done installing test... done helma>
The plugin manager uses HTTP to fetch meta data and plugin archives from a remote plugin repository. The plugin repository uses a simple directory structure to store plugins and provides JSON formatted metadata. How metadata is organized among a central plugin list and per-plugin files, and how much information about available plugins and versions can be delegated to directory structure conventions remains to be seen.
The initial plugin repository implementation will be maintained by hand. Of course we'll want an application to manage the repository rather soon, but this is not a goal for the Helma 0.3 release. Also, adding or editing plugin repositories is not a goal for Helma 0.3.