[kforge-dev] plugin packaging

Rufus Pollock rufus.pollock at okfn.org
Mon Sep 19 12:35:06 UTC 2005


As more plugins get developed we want to start thinking about how 
plugins get packaged and the related question of what files/info plugins 
are expected to supply and where this is installed.

Example: Plugin Config
======================

Can't start adding all of plugin configuration to kforge.conf (as we 
have started to with e.g. trac). as:

   * wrong dependency direction: should have plugins -> core not core -> 
plugins
   * this goes back to a very early discussion about whether plugin 
specific config need be available to other parts of the system
     * if does not need to be available we can just put config in with 
plugin and leave it there
     * if it does need to be available then have to install 
configuration into central system dictionary when you install the plugin 
(an alternative is for plugin to support some kind of querying interface)

So where should plugin config and other stuff go?

Proposal
========

Personally I have a great preference for keeping plugins as 
self-contained and self-sufficient as possible. This means, for example, 
keeping the config with the plugin. This way plugins and the core system 
are as independent as possible.

Suggestion for files:

1. docs:
   * README.txt
   * INSTALL.txt (optional)
   * LICENSE.txt if different from main license
2. code modules supplying at minimum:
   kforge.plugin.<plugin-name>.Plugin
3. config.py file so that you have plugin config in module (how does 
this work with single module plugins?)
   kforge.plugin.<plugin_name>.config

Extra Questions
===============

QU: Should plugins outside of the kforge namespace be allowed?
ANS: Current position is no.




More information about the kforge-dev mailing list