Version 4 by Evan Coury
on Nov 27, 2011 00:12.

compared with
Current by Evan Coury
on Nov 27, 2011 00:12.

(show comment)
Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (30)

View Page History
h1. THIS <h1>THIS RFC IS STILL IN-PROGRESS. FEEL FREE TO EDIT IT WITH YOUR OWN IDEAS AND THOUGHTS.</h1>

h2. Abstract

The goal of modules.zendframework.com is to provide a central repository and community site for Zend Framework 2 modules. This will help in the discovery of modules by users, and serve as the default module repository used by the ZF2 CLI.
<h2>Abstract</h2>

h2. GitHub Integration
<p>The goal of modules.zendframework.com is to provide a central repository and community site for Zend Framework 2 modules. This will help in the discovery of modules by users, and serve as the default module repository used by the ZF2 CLI.</p>

Users should be able to register and sign in using their GitHub account. Utilizing the GitHub integration should be optional, but could offer some compelling features. For example, upon linking their GitHub acocunt, we could scan through a user's public repositories, and possibly even detect which repositories are ZF2 modules. We could then present them to the user, prompting them to choose which they'd like to publish. There are plenty of other GitHub integration points that could be leveraged, for example, if a module is hosted on GitHub, we could utilize their download URL's, etc. A module has been started for this purpose [here|https://github.com/EvanDotPro/EdpGithub] (with the goal to integrate it with [EdpUser|https://github.com/EvanDotPro/EdpGithub]).
<h2>GitHub Integration</h2>

h2. CLI Publishing
<p>Users should be able to register and sign in using their GitHub account. Utilizing the GitHub integration should be optional, but could offer some compelling features. For example, upon linking their GitHub acocunt, we could scan through a user's public repositories, and possibly even detect which repositories are ZF2 modules. We could then present them to the user, prompting them to choose which they'd like to publish. There are plenty of other GitHub integration points that could be leveraged, for example, if a module is hosted on GitHub, we could utilize their download URL's, etc. A module has been started for this purpose <a href="https://github.com/EvanDotPro/EdpGithub">here</a> (with the goal to integrate it with <a href="https://github.com/EvanDotPro/EdpGithub">EdpUser</a>).</p>

The site should have some sort of API (JSON-RPC, REST, etc) to allow registration, authentication, and publishing of modules straight from the CLI, without having to visit the site. This idea comes from [Node.js' NPM|http://npmjs.org/].
<h2>CLI Publishing</h2>

h2. Module Moderation and Review
<p>The site should have some sort of API (JSON-RPC, REST, etc) to allow registration, authentication, and publishing of modules straight from the CLI, without having to visit the site. This idea comes from <a href="http://npmjs.org/">Node.js' NPM</a>.</p>

Developers should be free to publish their modules to the repository / site without being subject to initial moderation or approval. However, we should have mechanisms in place for users to report modules that are malicious, broken, otherwise buggy / insecure, or blatently disregard best practices. As a community, we can establish guidelines and/or requirements for inclusion in the main repository.
<h2>Module Moderation and Review</h2>

h3. Reviewed Module Seal
<p>Developers should be free to publish their modules to the repository / site without being subject to initial moderation or approval. However, we should have mechanisms in place for users to report modules that are malicious, broken, otherwise buggy / insecure, or blatently disregard best practices. As a community, we can establish guidelines and/or requirements for inclusion in the main repository.</p>

One value-add we could offer is to put together a group of volunteers to review modules for things like best practices, security vulnerabilities, etc, and if everything checks out, we could flag the module with a seal indicating that it's been reviewed by the volunteer team. We would have to be VERY clear that this does not indicate ANY sort of waranty / guarantee / liability on part of the community or those who reviewed it, but rather just indicated that it has been looked over for conformance to some basic best practices. We would publish the "check list" used during the review of a module to determine if it qualifies for the seal.
<h3>Reviewed Module Seal</h3>

h2. Licensing
<p>One value-add we could offer is to put together a group of volunteers to review modules for things like best practices, security vulnerabilities, etc, and if everything checks out, we could flag the module with a seal indicating that it's been reviewed by the volunteer team. We would have to be VERY clear that this does not indicate ANY sort of waranty / guarantee / liability on part of the community or those who reviewed it, but rather just indicated that it has been looked over for conformance to some basic best practices. We would publish the &quot;check list&quot; used during the review of a module to determine if it qualifies for the seal.</p>

It is proposed that we provide a list of acceptable open source licenses for a module's inclusion on the site and in the repository. This list can be determined by the community, but the primary focus should be primarily to prevent commercial / "trialware" type modules from polluting the repository. It will be easy for third parties to create and host their own repositories, so if there is a need for a commercial repository (think "app store" that handles payments, licensing, and all related logistics and liabilities), then that can be left to a third party developer or company that is willing to invest the resources required to take on such a burden. The focus of modules.zendframework.com should be free and open source modules.
<h2>Licensing</h2>

h2. Spectacular Example
<p>It is proposed that we provide a list of acceptable open source licenses for a module's inclusion on the site and in the repository. This list can be determined by the community, but the primary focus should be primarily to prevent commercial / &quot;trialware&quot; type modules from polluting the repository. It will be easy for third parties to create and host their own repositories, so if there is a need for a commercial repository (think &quot;app store&quot; that handles payments, licensing, and all related logistics and liabilities), then that can be left to a third party developer or company that is willing to invest the resources required to take on such a burden. The focus of modules.zendframework.com should be free and open source modules.</p>

The modules.zendframework.com site and the backend that runs it should be fully open source, and should serve as a spectacular example of a fully working ZF2 application. We should leverage existing community modules as much as possible, and when required, create additional re-usable modules if there is not already one to solve a specific problem. The project is already up on GitHub at [https://github.com/zendframework/modules.zendframework.com].
<h2>Spectacular Example</h2>

Modules to consider: [SpiffyDoctrine|https://github.com/SpiffyJr/SpiffyDoctrine], [EdpUser|https://github.com/EvanDotPro/EdpUser], [EdpGithub|https://github.com/EvanDotPro/EdpGithub].
<p>The modules.zendframework.com site and the backend that runs it should be fully open source, and should serve as a spectacular example of a fully working ZF2 application. We should leverage existing community modules as much as possible, and when required, create additional re-usable modules if there is not already one to solve a specific problem. The project is already up on GitHub at <a href="https://github.com/zendframework/modules.zendframework.com">https://github.com/zendframework/modules.zendframework.com</a>.</p>

<p>Modules to consider: <a href="https://github.com/SpiffyJr/SpiffyDoctrine">SpiffyDoctrine</a>, <a href="https://github.com/EvanDotPro/EdpUser">EdpUser</a>, <a href="https://github.com/EvanDotPro/EdpGithub">EdpGithub</a>.</p>