a bit more about plugin names
authorFelix Domke <tmbinc@elitedvb.net>
Sun, 5 Mar 2006 22:02:33 +0000 (22:02 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Sun, 5 Mar 2006 22:02:33 +0000 (22:02 +0000)
doc/PLUGINS

index c383997..ed448fa 100644 (file)
@@ -26,8 +26,8 @@ def Plugins(**kwargs):
                fnc=main)"
 
 Basically, you're writing a "python module", which is called
                fnc=main)"
 
 Basically, you're writing a "python module", which is called
-Plugins.ourSmallTest.plugin. This corresponds to the
-Plugins/ourSmallTest/plugin.py file.
+Plugins.DemoPlugins.OurSmallTest.plugin. This corresponds to the
+Plugins/DemoPlugins/OurSmallTest/plugin.py file.
 
 This module must define a single function called "Plugins". The functions is
 called for every Plugin, and should return (a list of)
 
 This module must define a single function called "Plugins". The functions is
 called for every Plugin, and should return (a list of)
@@ -91,6 +91,31 @@ def autostartEntry(raeson, **kwargs):
        elif reason == 1:
                print "shutdown"
 
        elif reason == 1:
                print "shutdown"
 
+autostart plugins should always be configurable, and should default to an
+OFF state!
+
+Configuration
+=============
+
+Speaking about configuration, plugins must live in 
+
+config.plugins.<Category>.<PluginName>
+
+and nowhere else!
+
+You are, however, free to change settings which are already existing. If you
+
+Dependencies
+============
+
+Plugin dependencies (one plugin requires another plugin) should generally be
+avoided, but are possible. If there are dependencies, the .ipk file must
+list them.
+
+If possible, make them optional. If your plugin doesn't support one feature
+because another plugin isn't installed, that's fine (but should be noted in
+the docs).
+
 Categories
 ==========
 
 Categories
 ==========
 
@@ -99,3 +124,17 @@ Currently defined categories are:
 * DemoPlugins: Plugins fore pure demonstration purposes
 * Extensions: User interface extensions
 * SystemPlugins: Hardware specific plugins
 * DemoPlugins: Plugins fore pure demonstration purposes
 * Extensions: User interface extensions
 * SystemPlugins: Hardware specific plugins
+
+Plugin Names
+============
+
+A plugin name:
+ - should always start with a Uppercase letter,
+ - must not start with the word "Dream",
+ - nor end with "Plugin",
+ - should be unique even across Categories,
+ - must be understandable by english speaking people,
+   (unless it's a geographically restricted plugin)
+ - is not user changeable (that is, the user is not allowed to rename the
+   plugin directory)
+ - shouldn't be a generic word