Some marketplace submissions take longer to get through the PRB than others. Learn why and take measures to speed up the approval of your own marketplace submission by making it easier for the PRB to review your submission.
Rule number 1:
Do everything you can to make the reviewers job easier.
Before you start
Make sure your submission is actually ready for the marketplace. There is a big difference between an addon or theme that works on your own current customer development and something that can be installed by any concrete5 user.
The number one thing that slows down the review process for everyone is that many developers do not read the Marketplace Submission Rules. It may not be you, but other developers who have not read the rules consume PRB resources just getting them straightened out, before reviewers can even get on to looking at the functionality in detail. That is time the PRB could have spent reviewing your submission. So please read the rules, comply with the rules, don't waste reviewers time by arguing about the rules and help the review process run more effectively both for yourself and others.
Getting a fast turnaround
Submitting to the PRB can seem like entering a black hole. With the PRB now community driven, we try and at least take a first look at all submissions within 7 days. Once a reviewer gets involved, we like to keep things moving, so having made a submission, make sure you have time to spare to follow up on review comments and make any necessary changes. Once a review gains momentum, keep it going. Let it loose momentum and you could end up having to wait until a reviewer picks it up again.
Sometimes it is busy. The list of pending submissions can get quite long and it takes time for all of them to be reviewed, so please don't be too pushy. Asking what has happened every other day will only annoy. Nevertheless, if more than a few days have gone by since a submission or update and you have received no comments at all, you could ask if anyone is actively looking at your submission and if there is anything you could do to help it along.
Once reviewers are looking at a submission, the time can vary greatly depending on the type of package submitted. The following generalisations are based on a submission that works and meets all the requirements of the Marketplace Submission Rules and has no bugs. Once you have read the rules, there is also a video where Franz and Andrew give a 20 minute overview of the PRB process
Simply Visible Functionality
Marketplace submissions that are straightforward in their functionality and just display something tend to get through quickly. If it only takes 15 minutes to install, have a play and confirm it does everything, then another 15 minutes to read the code, a submission can be picked up by a PRB member and reviewed quickly (e.g. themes, button displays, variations on content blocks). If no issues are found, many such submissions are approved soon after a reviewer gets involved.
Doing Stuff Inside Concrete5
Marketplace submissions that interact in detail with stuff inside Concrete5 take longer because while they may be superficially easy to look at, it takes a lot of digging to make sure there are no side effects detrimental to other functionality. Reviewers are understandably more thorough (and need more time) to make sure such submissions are safe before approving them.
Integrating Outside Concrete5
Marketplace submissions that integrate with systems outside of Concrete5 take longest and could be in the PRB weeks or even months. The difficulty with some such submissions is that reviewers can’t simply pick them up for 30 minutes and do anything useful. Setting up a thorough test with something outside Concrete5 such as a third party system takes time to plan and then implement. Reviewers often need a good half a day to spare to do a conscientious job on such submissions (when did you last have half a day to spare?).
This is especially true where, almost by definition, such submissions go outside of the main expertise of PRB members - If they were already experts about the third party service and how it could integrate with Concrete5, the chances are they would have already released a similar addon and you would not have needed to develop it.
Getting Through Faster
As previously noted, these generalisations are based on a submission meeting all the requirements of the Marketplace Submission Rules and not having bugs. The more thoroughly a package is tested and checked before submitting to the PRB, the faster it will get through.
What developers can do to speed up the processing of their submissions:
Make sure every requirement in Marketplace Submission Rules is met. Be very thorough in doing this. Double check. Then check again.
Write decent documentation that explains what it does, how it does it and how to set it up. Skimpy documentation makes it harder to test and review (and will also result in a higher support overhead).
Make sure files from your development that are not relevant to the release (.GIT, sync-toy, graphics masters etc) are not in the submitted package unless they need to be part of it.
Start at version 0.9 and increment by 0.0.1 for each new upload in the PRB. Only change to 1.0 once approved. This enables reviewers to keep track of which version of your submission they are reviewing and for upgrades to be run when a new version is uploaded.
Be aware of copyright and IPR concerns. If you have used any third party code, such as jQuery plugins, make sure you follow the license conditions and include notes about the licenses with your submission. If you copy scraps of php or JavaScript from other marketplace items, make sure you have permission from the respective developers. If you have used someone's logo in your package icon, make sure it is allowed by their terms of use. Add notes about 3rd party licenses in comments in the code and post them when you make the submission. If you use a 3rd party brand name in the name of your addon, make sure you have not hijacked the name. This all comes back to making the reviewers job easier.
Use the concrete5 API. If you go outside the API, document and justify it in comments and post a note with the submission. Yet again, make the reviewers job easier.
Test it thoroughly. Remember to test edge cases. Empty inputs. Illegal inputs. Big inputs. Zero inputs. Negative inputs. Stupid inputs. Combinations of inputs. Users will do stupid things. PRB members will deliberately do stupid things to see if they can break your submission.
Remember to test multiple copies of a block on a page or area. Remember to test it in a stack or global area.
Make sure any CSS and JavaScript is scoped so it is carefully constrained within the addon or theme and does not interfere with anything else.
Remember to test blocks in combination with other blocks.
Make any editing interface easy and slick to use. Conform to concrete5 interface conventions.
Make sure it does not break on backup/restore, when a theme is changed and, where relevant, when moving a site or upgrading a site.
Make sure it installs from scratch.
Make sure it does not break anything else when you uninstall it.
As well as testing in decent browsers, test in Internet Explorer. It still has a big user base.
Look at the developer console for script errors and missing files. Look at the php and mySQL log files for hidden errors and warnings.
If it integrates with anything outside of Concrete5, set up test systems and accounts and provide details and access so PRB members can use them to facilitate testing and reviewing the submission, rather than having to set up tests with third party systems from scratch.
Read the Marketplace Submission Rules again just in case you have missed something.
Make the Reviewers Job Easier
Anything you can do to make a PRB members' job easier and quicker will help your submission get through faster. If you wonder why some developers seem to get marketplace submissions approved faster than yours, its because they make life easier for reviewers than you do.