Skip to content

Instantly share code, notes, and snippets.

@Hounddog
Forked from PEM-FR/RFC-DHZM.md
Created October 18, 2012 08:27
Show Gist options
  • Save Hounddog/3910454 to your computer and use it in GitHub Desktop.
Save Hounddog/3910454 to your computer and use it in GitHub Desktop.
RFC - Decision Helper for ZF2 Modules

RFC Status: Work-in-Progress

RFC Author(s): Martin Shwalbe, Pierre-Emmanuel Manteau

Abstract

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
    • ...

Proposed Features

User GitHub Login

User account management

Module submission

  • Display list of user owned repositories/collaborator repositories
  • Dependencies: Module.php, README(*), LICENCE(*)

Proposal for statistics

Example(s)

You can see a running(?) example here : http://zf-modules.bigbrowser.net

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment