How much does it cost to have a Moodle plugin approved?

How much does it cost to have a Moodle plugin approved?

by Renaat Debleu -
Number of replies: 18
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers
The last few months, a lot of plugins in the approval waiting list got the advice to contact a Moodle partner to get their plugin reviewed.

I have serious doubts about this advice:

  • has the review by a developer who is working for a Moodle partner more weight than the review by a developer who is not working for a Moodle partner?
  • can I have my review by a partner of my choice?
  • can insufficient funds ever impose a limit to development?
  • last but not least; what is the price of this review?
Can some Moodle partners (but also some non-partners) reveal a tip?


Average of ratings: Useful (1)
In reply to Renaat Debleu

Re: How much does it cost to have a Moodle plugin approved?

by Dan Marsden -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers Picture of Plugins guardians Picture of Testers Picture of Translators
Anyone can review plugins in the review queue - we have a checklist here:
https://moodledev.io/general/community/plugincontribution/checklist

The problem is that despite sharing that link and asking for volunteers - no one is doing it* - Just people writing new code, and submitting it to the plugins db then complaining about how long it takes to review plugins (which I think is completely valid - it's sad to see them sit for so long in the queue!).

Moodle Partners have development staff that you can "hire" - one of the things you can ask them to do is to review plugins - each plugin review takes anywhere from 1hr to 24hrs of effort depending on the skill level of the developer who wrote the plugin, how big it is and how easy it is to review, but you will need to reach out to your local moodle partner if you are interested in funding something to speed up the approval of your plugin.

Personally I think the plugin review process is not sustainable at the moment - I see a lot of value in the review process, but I'm heavily biased. Should we drop the review process completely and just accept anything that appears valid? - that would be a shame in my opinion but unless Moodle HQ have a way to fund the review process or allocate resource to reviews I'm not sure what the way forward is here.

** We do have a small number of volunteers who do review plugins but only a small handful of reviews have been completed this year by people other than myself. I don't know how many I've done this year, but I wish I had time to do more smile
Average of ratings: Useful (5)
In reply to Dan Marsden

Re: How much does it cost to have a Moodle plugin approved?

by Renaat Debleu -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers
THX Dan for your answer. I really do appreciate your work, you have no idea.

But I will oppose your idea for paying reviews as long as they are not 100% transparent. Quality assurance is rarely reached by privatizing quality control to an affected partner/organization.

If the plugin review process is not sustainable at the moment, perhaps it should be better to suspend the process temporally. It's nobodies interest if the issue tracker contains statements like 'would typically block approval in the plugins db, but ...', 'did not test it but ... ', 'some of the ⚠️  has been solved', ... 
In reply to Renaat Debleu

Re: How much does it cost to have a Moodle plugin approved?

by Olga Koenig -
Picture of Moodle HQ
Hi Renaat, I wanted to share some positive news with you – in Increment 1, we've enlisted the support of our Moodle HQ developers to address the backlog efficiently. Your patience is appreciated, and we'll ensure to keep you informed about the progress. If you had any additional questions - please let me know smile
Average of ratings: Useful (2)
In reply to Olga Koenig

Re: How much does it cost to have a Moodle plugin approved?

by Renaat Debleu -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers
Are there any plans to use the moodle-plugin-ci as part of the process to get a plugin approved?

It is perfectly possible to calculate the quality of a plugin using certain parameters and move it foreward or backward in the queue.

+ first contribution + 1000
+ moodle partner + 1000
+ app support + 500
+ gdpr support + 500
+ amount of databases supported * 100
+ amount of supported active Moodle versions * 100
+ amount of badges in plugins database * 10
+ amount of badges in Moodle.org * 100
+ current php versions supported * 10
+ phpunit coverage * 10
+ behat steps * 10
+ phpcbf steps * 10
+ days waiting to get approved

- non documented functions * 10
- phpmd errors * 10
- phpmd violations
- codesniffer errors * 10
- codesniffer warnings
- mustache lint warnings
- grunt errors * 50
- grunt warnings
- phpunit warnings
- phpunit errors * 50
- behat warnings
- behat errors * 50
- Accessibility errors * 50
- XMLDB errors * 500

= total  

This calculation produces a first step to produce a more objective method to handle the plugins queue:

Total > XXXXX         => semi authomatic approval within a week
YYYY < Total < XXXXX => plugin needs some work and needs review
ZZZZ < Total < YYYYY => plugin needs a lot of work before it can be reviewed
Total < YYYYY => do not bother to review


Average of ratings: Useful (4)
In reply to Renaat Debleu

Re: How much does it cost to have a Moodle plugin approved?

by Séverin Terrier -
Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Testers Picture of Translators
This idea could be cool and speed things.

I think the last line should be :
Total < ZZZZZ         => do not bother to review

And perhaps the missing things could directly point the developer to the dedicated parts of the documentation so that he can improve the plugin.

Séverin

Average of ratings: Useful (1)
In reply to Renaat Debleu

Re: How much does it cost to have a Moodle plugin approved?

by Dan Marsden -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers Picture of Plugins guardians Picture of Testers Picture of Translators
Thanks Renaat - yes I think if we invested some development time to improve the validation process in the moodle.org plugins db it would help to minimise some of the manual tasks performed by the exisitng review team, many people submitting plugins don't run their code through our existing tools like codechecker or read the checklist prior to submission - so making this more visible could help with the overall process.

some of what you state above already happens at a practical level - if you dig around the past reviews you might see comments from the review team like "reviewing this plugin in fast mode" - that typically means it's come from an experienced developer or partner that has already submitted a plugin before and the code is well written.

Good to hear Olga is arranging for some time from HQ devs to help clear the existing backlog, hopefully this will help to clear the backlog but hopefully we'll also get further developers interested in helping out with the review process (or find a way to generally fund the plugins db review process.)

I was pointed towards this post in the wordpress community where they have had some similar challenges:
https://wptavern.com/wordpress-plugin-review-team-addresses-backlog-of-900-plugins-implements-strategies-to-improve-approval-process

Interesting to see that they have a number of "sponsored" volunteers to perform reviews.
Average of ratings: Useful (1)
In reply to Dan Marsden

Re: How much does it cost to have a Moodle plugin approved?

by Renaat Debleu -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers
Dan, I just want to reduce the human factor. 

Please explain what it takes to have this "fast mode" reviewing available.  Is this decided by a human being or a machine?  What can a programmer do to have this fast lane available?

When my plugin was residing 6 months in the queue, I asked for feedback why it took so long. The only reaction I got, was that I cannot accuse people. This was the least of my intentions, I was mostly afraid my plugin was once again forgotten. Now that my contribution is waiting for 300 days in the queue and the option to have it reviewed by a Moodle partner is unavailable (it was not part of the budget),  I'm searching for other solutions...
In reply to Renaat Debleu

Re: How much does it cost to have a Moodle plugin approved?

by Dan Marsden -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers Picture of Plugins guardians Picture of Testers Picture of Translators
yes - I hear your frustration - your plugin has currently been waiting too long for a review (184 days - not 300 as you mention.) - there are at least 6 other developers waiting for their review for longer than you have for yours at the moment.

Detection of security issues (like were detected in the plugin you refer to) would typically be a reason a "fast-review" wouldn't be undertaken - typically what I refer to as a "fast review" would be undertaken when the plugin developer is a well-known contributor to the core Moodle code-base and it's clear the code provided follows standard guidelines well, but as you mention it would be nice to automate some more things to speed this up... of course - that still requires time from a developer to implement the automation... smile

Please be patient - Moodle HQ have committed (as mentioned above) to add some people resource to help clear the backlog - hopefully that will be the thing that tips the scale, especially if they are continue to do this in an ongoing manner, but it will take some time for us to actually clear the queue - there's nothing else you can do personally to influence this process at the moment, unless you want to volunteer to help review some of the plugins in the backlog.

thanks!
Average of ratings: Useful (3)
In reply to Dan Marsden

Re: How much does it cost to have a Moodle plugin approved?

by Renaat Debleu -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers
Sorry Dan,

but I do not know where you got your 184 days from. I submitted the plugin on March 15  2023  (10 months - 44 weeks - 309 days -  7,411 hours - 444,669 minutes - 26,680,185 seconds ago). So my clock started ticking 309 days ago. Of course, I can be wrong. Can you share why your clock started ticking only 184 days ago?

You suggest I have to patient. Perhaps I could fall back on the reservoir I build up waiting for the Moodle plugins reward scheme...
In reply to Renaat Debleu

Re: How much does it cost to have a Moodle plugin approved?

by Dan Marsden -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers Picture of Plugins guardians Picture of Testers Picture of Translators
15/Mar/23 - you uploaded the plugin to the plugins db for review.
14/Jun/23 - plugin was reviewed and a security issue was identified so the plugin was flagged as requiring more work and it dropped it out of the review queue.
One month later - (17/Jul/23) - you uploaded a new version of the plugin and indicated you had resolved the issues - adding it back to the review queue.

So - the plugin has been waiting since 17th July in our queue. (still too long but not 300 days.)

Some developers fix issues within a couple of days (and in these cases often we're able to perform a subsequent review pretty quick as the code is fresh in the reviewers mind) - other developers take months or even in some cases years to fix the issue and resubmit again.

hope that helps to explain how the queue works - thanks!
In reply to Dan Marsden

Re: How much does it cost to have a Moodle plugin approved?

by Purnendu Dash -
Picture of Plugin developers
Dan,

I would like to contribute on the review process. May I know the procedure to start a plugin review. Where from I can get the documentation to get it started. Kindly let me know the way forward.

Looking forward to your reply.


Best Regards,
Purnendu
In reply to Purnendu Dash

Re: How much does it cost to have a Moodle plugin approved?

by Adam Jenkins -
Picture of Plugin developers
Hi Purnendu,

Please see this page for information on how to become a "Plugins Guardian" (cool name, isn't it?).

https://moodledev.io/general/community/plugincontribution/guardians

As someone who just submitted their first plugin and is waiting for approval, many thanks to you and all who do this important work!

Cheers!
In reply to Adam Jenkins

Re: How much does it cost to have a Moodle plugin approved?

by Dan Marsden -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers Picture of Plugins guardians Picture of Testers Picture of Translators
In the meantime - the list of plugins waiting a review, along with their source control repo link and the review tracker issue is public here: https://moodle.org/plugins/report/index.php?report=unapproved_plugins_public

If you would like to help out with the review process, pick something in that list, assign the CONTRIB issue to yourself and follow the checklist here:
https://moodledev.io/general/community/plugincontribution/checklist

There's a bit of an issue with component lead subscriptions in the tracker,(not all comments on the issues will get noticed at the moment) so if you post a review and you don't get a follow up comment from one of the existing plugin review team members within a couple of days, try pinging me in the tracker issue and I'll try to respond there myself!
Average of ratings: Useful (3)
In reply to Dan Marsden

Re: How much does it cost to have a Moodle plugin approved?

by Renaat Debleu -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers
Thanks for your most encouraging feedback.
In reply to Dan Marsden

Re: How much does it cost to have a Moodle plugin approved?

by Michael Milette -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers Picture of Translators

I have seen some good suggestions by others in this discussion and would like to add a few ideas:

1. Give developers the power to bump their plugin up in the approval queue. Automated testing should be the first level of approval process. The system already does automated pre-check testing and priority could be given to plugins with the lowest number of total issues, with security issues being a complete show stopper regardless of the number of other issues.

This would give developers the power to move their plugin up in the approval process queue while encouraging them to increases the quality of their plugin. Top priority goes to those with zero pre-check issues.

2. Wiki of pre-check issues and solutions: it would be very helpful to have a repository of knowledge on how to interpret the pre-check reports and what to do about reported issues. There are often cryptic errors and warnings that lots of people get but nobody knows how to fix. So, it becomes nearly impossible to fix the issue, especially for new developers. While one could write a course on this topic alone, a repository of knowledge that people could contribute to would be quite valuable. A link to this should be displayed at the top of every pre-check report. Either that or improve the clarity of messages - but that might not be as easy since they are often 3rd party tools.

3. Display place in approval queue: This has already been suggested this and I completely agree. This is extremely important to developers waiting for their plugin to be approved - to know that their plugin is moving up in the queue, not only over time but as they make efforts to improve their code as mentioned above.

4. Raise visibility: Plugins pending approval should be listed in the Plugins directory, but only for those who are already approved maintainers of other plugins. If a plugin seems potentially useful to them, they might be more inclined to do a review or maybe even fix issues and contribute pull requests back to the developer.

Of course unapproved plugins would need to be clearly marked in the listings and search results.

5. Make access to review process easier: It would be helpful if a link or button would be displayed in the unapproved plugin that would take potential reviewers to the approval process. The idea is to make it easier to get the approval process moving forward. Different parts of the check list could even be completed by a single or multiple people reducing the effort required by a single person.

6. Ratings and reviews: there is always the option of letting people rate plugins and submit reviews. In order to remain visible, a plugin would need to maintain a minimum public rating. Ratings would be specific to each release and start off with a neutral rating. A person could only submit one review per release but update their existing review. I haven't thought this idea through completely yet so it might need a little more thought on how to implement this fairly.

7. What is Good Enough: Something to consider is whether good enough to be publicly available means that it is secure and does what it says it does, or does it need to be coded and documented according to guidelines. It is really a balancing act. If you look at many of the plugins in the repository, you will notice that very few of them pass the pre-check. Many of the most popular ones have between dozens and hundreds of issues. What constitutes good enough?

8. New Premium Plugin Directory: I realize that implementing these ideas involves paying someone to do it. Funds for this could be raised by implementing a new directory of premium plugins and themes. Maintainers would subscribe and pay to have their premium plugin listed. This repository would not contain the plugin but rather just a link to where visitors could find more information and pay. Revenues from these listings could fund the development of the above-mentioned ideas and the resources to move plugins through the approval process. Personally, I think it would be great to see a complete list of most premium plugins in one place. They are currently hard to find unless you happen to trip across them. However, there are some great premium plugins for Moodle out there that most people don't know even exist.

In addition to the subscription fee, you could also make it a condition that each premium product also have a free version available that may have a reduced feature set. This would encourage premium developers to also contribute to the free directory thereby increasing the selection of free plugins. I believe that this could result in a scenario where everybody wins.

Hope you find these suggestions useful.

Best regards,

Michael Milette

Average of ratings: Useful (6)
In reply to Dan Marsden

Re: How much does it cost to have a Moodle plugin approved?

by Richard Oelmann -
Picture of Core developers Picture of Plugin developers Picture of Testers
"We do have a small number of volunteers who do review plugins" 

Can I just second (or third...) any celebration of those volunteers who give up their own time, or partner time freely contributed to the project as uncharged hours, for such activities.

The contribution of people like yourself, Dan, who work so hard on these reviews to support the plugin authors often comes unsung, but is a vital part of the processes that go towards the quality of the whole Moodle ecosystem.

Thank you to all -  both plugin developers and plugin reviewers - for everything you add to the whole project!
Average of ratings: Useful (7)
In reply to Richard Oelmann

Re: How much does it cost to have a Moodle plugin approved?

by Dominique Palumbo -
Picture of Particularly helpful Moodlers Picture of Plugin developers
Hi,

Could you imagine a, kind of, pair review in addition to the current system ?


Like if you want your plugin to be reviewed (faster), you've to review 3 or else other plugins in the queue. Or you just wait like now.
Each plugin must be reviewed by at least three or any impair number other plugin dev. (Maybe it's better if it's dev that already has at least one plugin already approved.)
You've to fill a kind of check list and can communicate with the other reviewer if you feel that something is bad in the other review. A kind of self-management between reviewer. To motivate everyone If you review plugin even when you don't have one in the queue you can get a count number of plugin reviewed that put your plugin higher in the queue or as information to the other.
It's an idea like that, I imagine they have plenty of holes in the idea but Moodle have as I see a large and nice community.
And to make the difference in the plugin directory you can have a badge like 'Reviewed by the community'.

I'm sure in other areas of learning some people here have experience and good advice about this practice.



Have a nice day.

Dominique.