Improve core plugins maintainability #429
Big plugin overhauls like those planned in #401 are out of scope for moneyGuru 2.9, but there's some changed that are needed for #415 (which is planned for v2.9) to work well, that is, making sure that "core" plugins (plugins that ship with moneyGuru) work well.
Currently, plugins work this way:
The goal there was to give easy examples to play with to the user, to foster plugin creation. It's easy, they're right there in your plugin folder! She could then directly toy with these plugins and see the result.
The problem with this is that plugins aren't updated with new moneyGuru versions. For toy plugins (what core plugins are until 2.9), it's no big deal if they get outdated and stop working, but for plugins essential to moneyGuru's workflow (currency fetching), that doesn't cut it.
I first thought of implementing a full feature version detection system that replace outdated plugins, but it might be too soon. I'm not ready to step in that. Plus, we'd have to verify if it doesn't affect startup time too negatively, and that's an analysis I'd like to postpone.
My immediate plan would be simple: load plugins from two sources, core and user. So we start by loading plugins directly from the "plugins" folder shipped with moneyGuru, and then we load plugins from the user folder (with duplicate detection. we would ignore the second plugin with the same name). Simple, effective, good enough for now (I think).
The text was updated successfully, but these errors were encountered:
Core plugins, which live in `core.plugins` are always loaded first and contain plugins that moneyGuru needs in order to work properly (as well as a few toy example plugins). This replaces the old mechanism where we would copy `plugin_examples` in the user's plugin folder. ref #429