
This reworks the plugin infrastructure so as to remove module-loading side-effects which were making things a pain in the ass to test. With the new system, there's no auto-registering meta class. Instead plugins do whatever they want and then specify a hooks dict that maps hook names to callables for the things they're tying into. The most common one (and the only one we've implemented so far) is "setup". This also simplifies the sampleplugin a little by moving the code to __init__.py.
============== sampleplugin ============== This is a sample plugin. It does nothing interesting other than show one way to structure a MediaGoblin plugin. The code for this plugin is in ``mediagoblin/plugins/sampleplugin/``.