Constructive criticism is always helpful, so right off the bat, while I'm inclined to debate the finer points of your post, I do want to say that there are positives and negatives to NodeBB, and while we can try to please everybody, it's always to the detriment of somebody/something else.
Specifically with plugin compatibility. Yes, this is an issue, and no, I am not happy about it. A great majority of plugins are made, as you say, because of a need, and once that need is fulfilled, the maintenance of the plugin drops. This is especially an issue if we introduce breaking changes that cause plugins to stop working (at best), and bring down the forum (at worst) -- if that author never updates their forum, they'll never know the plugin is outdated.
We're going down this path slowly and methodically, so we can see just how people play with packages, and what their pain points are. Here's a brief history, off the top of my head, so if I've missed anything, I apologise:
- Plugins were only installable via
npm i or
git clone into
- "NodeBB Plugins" category is the sole source (besides google and npm) of discovering new plugins
- NodeBB Package Manager (nbbpm) is developed, and the ACP/Plugins page introduced, with much trepidation because this single act opens plugins to non-developers, and non-developers don't know how to rescue a downed NodeBB.
- Breaking changes and outdated plugins cause much grief and frustration
- nbbpm develops the "suggest" feature, which when passed a NodeBB version, suggests a proper plugin version to install
- Problem: The "Upgrade" button is not tied to the suggestion feature, yet
- Problem: Relies on developers to maintain the
nbbpm.compatibility hash, which many do not do
... and so this is where we're at.
We're investigating a number of possibilities, including:
Hard-coding version numbers for bundled plugins Done, v0.7.3
- Tying the "upgrade" button to nbbpm
- Throwing a bunch of very verbose errors when plugins don't have
- Automated testing of plugins on every NodeBB release to determine compatibility
Manual testing of plugins on every NodeBB release to determine compatibility Expensive.
- Hiding plugins without
nbbpm.compatibility from nbbpm
- If a nodebb version # is passed to nbbpm, it should only return plugins that support that version
The latter two are most feasible.
nbbpm.compatibility process too cumbersome for developers?