This is a proposal for implementing proper validation mechanisms for plugins (and plugins versions) submitted into the plugins directory. In summary, I suggest that:
- We mark the following plugin form fields as required: Full description, Bug tracker URL, Source control URL, Screenshots
- We remove the current Plugin checker results block
- We implement a new validation policy that does not allow to submit two versions of the plugin with the same $plugin->version value, and raises warnings if a chance for invalid versioning scheme is detected (such as uploading a new version with lower $plugin->version than some existing one).
The fields mentioned in the first suggestion are currently reported as "Recommended" by the Plugin checker block. They are de-facto required as we insist on them when approving a new plugin. And we do it for what we believe are good reasons, to promote the spirit of open source development, culture of sharing, contributing, bugs reporting etc. We like to see screenshots as it allows us to make the browsing of the directory more visual oriented.
If that is done, we can get rid of the current Plugin checker block. Its main purpose was to save the reviewers from repeatedly commenting about missing values for these fields. Additionally, there is a confusion on what Plugin checker, CiBoT precheck and version validation results are (we really should unify them all into a common interface during the next major UI rewrite).
The third suggestions comes as a result of the recent improvements in the plugins management in the Moodle core itself (
MDL-49329). It turns out the proper versioning schemes and upgrade paths become more and more important for the overall plugins infrastructure to work reliably. Today, we see suspicious things like two different ZIPs having the same $plugin->version etc, and there is no validation for this essential thing.