Misago implements a plugin system, but while working on Misago v4 I've developed new one that's superior to current one. I would like to bring those improvements back to current Misago version:
- Plugins are kept within
- Each plugin has top-level directory that contains its requirements files (either
requirements.txtare supported), its Python package with
misago_plugin.pymanifest file and, in future,
- Plugins have
misago_plugin.pymanifest file which enables plugin authors to provide information about plugin that can be used by Misago on list of installed plugins in admin panel.
- Plugins use
filterextension hooks to extend or replace standard logic implemented by Misago.
- Some of Misago's standard models will have a
plugin_dataJSON field to let plugins store small bits of in Misago's tables for quick access.
Plugin directory really simplifies container bootstrap and keeps all plugins in same place.
Because individual plugins directories are not Python packages but directories that contain Python packages, those plugin dirs can be
git clone'd from github as an installation method.
Each plugin's requirements are taken care of separately. Unwieldy and nightmare to maintain
requirements-plugins files are gone.
Roadmap item: #1524