RFC Status: Work-in-Progress
Proposal for ZendFramework 2 Module Evalutaion
Why should we evaluate modules?
- When you are looking for a module, you might want to know abotu the quality of the module, and not choose randomly.
- If we ever reach a point where we have thousands of modules, and several of them doing the same thing, you might want to be able to compare them.
- As a module provider, we want to ensure a certain level of quality in the module provided, or at least information about this quality to be judged by users. It is necessary to be deemed reliable.
How to evaluate them properly?
- Evaluating ones code is not always an easy task and might be very subjective at times depending on the one evaluating.
- We need to rely on a set of informations, among them :
- reactivity (speed of issue resolving, speed of PR treatment).
- user ratings (documentation, ease of installation, quality of support, module is working as expected), with 4 stars, one for each, or something like that.
- nb of downloads. (int)
- are there any unit tests? (yes / no)
- is there any documentation? (yes / no)
- nb of open/closed issues
- nb of waiting/merged Pull Requests
Statistics and filters over global rankings
- We consider that it is not our role to compile all these information into one note, as some factors may be wrongly influenced. For example, is a stable module with no update for 6 months better than an "unstable" module with a lot of issues and PR, but which solves both at a fast pace? We believe it is up to the final user to make the decision what he/she deems better for his/her context.
- Providing a set of informations that helps a user decide seems to be a better option than a global blackbox ranking.
- In order to allow users to search by their own criteria, own order of importance, we will provide filters and indexes on information subsets.
What is a module, what information shall it provide?
- It MUST have a module.php file in the root folder
- It MUST have a licence.md
- It MUST have a readme.md
- It can provide additional information in the readme.md such as :
- @zf-version : 2.x
User GitHub Login
User account management
- Display list of user owned repositories/collaborator repositories
- Dependencies: Module.php, README(*), LICENCE(*)
Proposal for statistics
You can see a running(?) example here : http://zf-modules.bigbrowser.net (currently not operational and url might change)