compared with
Current by Wil Sinclair
on May 22, 2008 09:41.

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

Changes (65)

View Page History
{section}
<ac:macro ac:name="section"><ac:rich-text-body>

{column:width=70%}
<ac:macro ac:name="column"><ac:parameter ac:name="width">70%</ac:parameter><ac:rich-text-body>

<p>Zend wholeheartedly welcomes community contributions to the Zend Framework project, and we strive to make the process as easy as possible while maintaining the high quality ZF components are known for. Contributions can take the form of new components, features, bug fixes, tests, documentation, reference guide translations, examples, bug reports, or just good suggestions. In any case, you must sign a [Contributor <ac:link><ri:page ri:content-title="Contributor License Agreement] Agreement" /></ac:link> (CLA) before contributing any intellectual property to the project indicating that this intellectual property is yours to contribute. A large contribution, such as a new component or a substantial new feature in an existing component, requires the submission of a formal proposal which will be considered for inclusion in one of the Zend Framework libraries.</p>

h1. Proposal Process
<h1>Proposal Process</h1>

<p>All proposals are submitted as [Zend <ac:link><ri:page ri:content-title="Home" /><ac:link-body>Zend Framework proposal documents|Home], documents</ac:link-body></ac:link>, on which members of the community and the Zend team can provide feedback in the form of wiki comments. Those considering submitting a proposal are strongly encouraged to present and discuss their idea on the mailing list before creating the proposal document so that it may be initially vetted by- and improved upon with the help of- the most active members of our community. Your proposal is much more likely to get reviewed and accepted for a Zend Framework library expeditiously if you take this approach.</p>

h2. New Proposals
<h2>New Proposals</h2>

{note:title=Who can submit a proposal on the wiki?}
Anyone who has submitted a signed [CLA|Contributor License Agreement] will be granted access to post proposals.
{note}
<ac:macro ac:name="note"><ac:parameter ac:name="title">Who can submit a proposal on the wiki?</ac:parameter><ac:rich-text-body>
<p>Anyone who has submitted a signed <ac:link><ri:page ri:content-title="Contributor License Agreement" /><ac:link-body>CLA</ac:link-body></ac:link> will be granted access to post proposals.</p></ac:rich-text-body></ac:macro>

Once you are satisfied that you have sufficiently thought through your idea with the help of the community, you can create the first draft of your proposal document. First read the guidelines for writing a proposal in the [authoring a proposal] article. Then follow the instructions in the 'Submitting a New Proposal' column on the [proposals main page|Home]. Your new proposal should be automatically created in the [New] section on the [proposals main page|Home].
<p>Once you are satisfied that you have sufficiently thought through your idea with the help of the community, you can create the first draft of your proposal document. First read the guidelines for writing a proposal in the <ac:link><ri:page ri:content-title="authoring a proposal" /></ac:link> article. Then follow the instructions in the 'Submitting a New Proposal' column on the <ac:link><ri:page ri:content-title="Home" /><ac:link-body>proposals main page</ac:link-body></ac:link>. Your new proposal should be automatically created in the <ac:link><ri:page ri:content-title="New" /></ac:link> section on the <ac:link><ri:page ri:content-title="Home" /><ac:link-body>proposals main page</ac:link-body></ac:link>.</p>

<p>Creating empty or unfinished 'placeholder' proposals is *strongly discouraged*. <strong>strongly discouraged</strong>. Placeholder proposals with no substantial content and proposals that have not been updated for 3 months or longer may be archived. All archived proposals may be 'resurrected' by the original author or another contributor simply by re-parenting the document to the appropriate section, appending new authors as necessary, and making the desired edits. This policy helps the community keep all proposals organized and up-to-date.</p>

<p>We've found that including lengthy prototype code in the body of your proposal usually obfuscates the most important concepts behind too much detail. Unless your code is short (at most as long as the rest of your proposal), you should add it as an attachment to your proposal document and refer to it as necessary in the proposal document. API's defined in PHP format are encouraged where the design concepts may be best conveyed through concrete interfaces. Pseudo-code is also encouraged to illustrate important flows of execution.</p>

h2. Proposal Review
<h2>Proposal Review</h2>

All proposals in the [New] section are considered working drafts. When you have completed the initial draft of your proposal document and feel that it is ready for community review, change the parent document of your proposal to [Ready for Review]. Your proposal will now be listed under the [Ready for Review] section on the [proposals main page|Home], where it will be available for iterative review by the Zend Framework community, including the Zend team.
<p>All proposals in the <ac:link><ri:page ri:content-title="New" /></ac:link> section are considered working drafts. When you have completed the initial draft of your proposal document and feel that it is ready for community review, change the parent document of your proposal to <ac:link><ri:page ri:content-title="Ready for Review" /></ac:link>. Your proposal will now be listed under the <ac:link><ri:page ri:content-title="Ready for Review" /></ac:link> section on the <ac:link><ri:page ri:content-title="Home" /><ac:link-body>proposals main page</ac:link-body></ac:link>, where it will be available for iterative review by the Zend Framework community, including the Zend team.</p>

<p>After you are satisfied that you have obtained all useful community feedback (this process will likely take several weeks) and updated your proposal accordingly, you may move your proposal document to the [Ready <ac:link><ri:page ri:content-title="Ready for Recommendation] Recommendation" /></ac:link> section by once again changing the parent of your document to [Ready <ac:link><ri:page ri:content-title="Ready for Recommendation], Recommendation" /></ac:link>, indicating that it is ready for review by the Zend team and official recommendation. After the document has been added to the [Ready <ac:link><ri:page ri:content-title="Ready for Recommendation] Recommendation" /></ac:link> section, a Zend liaison will be assigned to your proposal within one week. You Zend liaison is the member of the Zend team with whom you will communicate regarding your proposal and who will present your proposal along with his or her recommendation to the rest of the Zend team for consideration. Within one day after assignment to your proposal, your liaison should add his or her name to the liaison field of your proposal document. Your Zend liaison will ultimately recommend promotion to the Laboratory, Standard Incubator, or Extras Incubator libraries after fully reviewing your proposal. Alternatively, if the liaison believes the proposal does not add enough value to or is not appropriate for the Zend Framework project, he or she may not recommend promotion of your proposal to any of our libraries.<br />
Liaison assignment will typically occur on Tuesday at 10:00 AM, PST. Recommendation review and team discussion will take place directly thereafter. Currently these meetings will not be accessible to the public, although we are evaluating solutions to allow community members to participate in the future. By the end of the recommendation review the Zend team will determine by consensus or majority vote to which library- if any- your proposal should be promoted. Your liaison will then be responsible for posting the official Zend recommendation as a comment on the document under the title of 'Zend Comments' stating the team's recommendation and the reasoning behind it, notifying you of this recommendation directly, and moving the proposal from the [Ready <ac:link><ri:page ri:content-title="Ready for Recommendation] Recommendation" /></ac:link> section to the appropriate section. The authority to determine how to proceed with yourcaref proposal lies solely with the Zend team, although the team will carefully consider all community comments and your Zend liaison's recommendation in reaching its final decision. If you do not accept the Zend team's recommendation, you must notify your liaison so that your proposal can be moved to the [Archived] section. <ac:link><ri:page ri:content-title="Archived" /></ac:link> section.</p>

<p>Please keep in mind throughout the process that your proposal may not necessarily be recommended for promotion to any Zend Framework libraries. If this is the case, your proposal document will be moved to the [Archived] <ac:link><ri:page ri:content-title="Archived" /></ac:link> section by your Zend liaison. Please do not be discouraged under such circumstances; the Zend Framework community works hard to guarantee the correct balance of functionality and quality in the ZF project and your proposal may simply not align with our strategic goals or vision. Such a decision will likely include suggestions for how you might alter or rework your proposal in the official comment to supplement its value proposition to the Zend Framework project. The proposal may then be altered and resubmitted using the same process as that outlined for new proposals. This revised document should reflect the suggestions from the Zend team, which may call for significant changes in your original proposal. In many cases it may be easier to start a new proposal instead of refactoring your old proposal.</p>

<p>The Zend team will make every effort to review your proposal within one week after a liaison has been assigned to it. Since proposal reviews will typically occur in the weekly proposal meeting directly after liaison assignment for the current proposals in the [Ready <ac:link><ri:page ri:content-title="Ready for Zend Review] Review" /></ac:link> section, the Zend team will provide a best effort assurance that proposals will be fully reviewed in no more than two weeks. *This <strong>This should not be construed as a guarantee of any sort*, sort</strong>, however. Please keep in mind that proposal review meetings may be postponed or cancelled due to holidays in the United States or circumstance beyond our control.</p>

<p>Proposals submitted by members of the Zend team will be subject to the same process, including the assignment of another member of the Zend team as a liaison and general consensus or a majority vote by the Zend team to finalize its recommendation. The member of the Zend team submitting the proposal may not vote on the final recommendation for his or her proposal. </p>

<p>Throughout the review process- even after the Zend team has posted its official Zend comment- community members may add comments on your proposal. It is *strongly recommended* <strong>strongly recommended</strong> that you read these comments and respond to them quickly; they should be constructive and help improve and guide your proposal through the process. Your proposal is much more likely to be accepted for promotion if you have addressed all concerns and suggestions raised in the comments from the community.</p>

To promote a proposal, your Zend liaison must create a component for the *Laboratory*, *Core Incubator*, or *Extras Incubator* library projects in the Zend Framework [issue tracker|http://framework.zend.com/issues] as appropriate. You must then refactor any existing code to conform with Zend's namespace conventions for the repository to which your proposal has been promoted. Finally your liaison will provide instructions for accessing the repository and adding your code.
<p>To promote a proposal, your Zend liaison must create a component for the <strong>Laboratory</strong>, <strong>Core Incubator</strong>, or <strong>Extras Incubator</strong> library projects in the Zend Framework <a href="http://framework.zend.com/issues">issue tracker</a> as appropriate. You must then refactor any existing code to conform with Zend's namespace conventions for the repository to which your proposal has been promoted. Finally your liaison will provide instructions for accessing the repository and adding your code.</p>

h2. Subversion Access
<h2>Subversion Access</h2>

As outlined above, contributors must submit a signed [Contributor License Agreement] (CLA) to be eligible to add any intellectual property, including direct commits of new and altered code, to our Subversion repository. This includes, but is not limited to, all code, tests, and documentation for any library in any location within the Zend Framework code repository. If your proposal is promoted to *Laboratory*, *Core Incubator*, or *Extras Incubator* and you don't have access to the corresponding Subversion repository, your liaison will be responsible for granting you this access.
<p>As outlined above, contributors must submit a signed <ac:link><ri:page ri:content-title="Contributor License Agreement" /></ac:link> (CLA) to be eligible to add any intellectual property, including direct commits of new and altered code, to our Subversion repository. This includes, but is not limited to, all code, tests, and documentation for any library in any location within the Zend Framework code repository. If your proposal is promoted to <strong>Laboratory</strong>, <strong>Core Incubator</strong>, or <strong>Extras Incubator</strong> and you don't have access to the corresponding Subversion repository, your liaison will be responsible for granting you this access.</p>

h2. Library Overview
<h2>Library Overview</h2>

<p>There are a few libraries associated with Zend Framework, but only two that are recommended for production use: the standard library and the extras library. Of these two libraries, only the standard library is supported by Zend with subscription support. The standard incubator and extras incubator are libraries that contain components that have not yet reached the quality criteria for inclusion in the standard and extras libraries, respectively. For example, components must remain in the incubator libraries until the developer(s) have reached sufficient unit test code coverage and fully documented the new functionality.<br />
The laboratory is provided to give ZF contributors the resources they need as they prototype and refine their ideas in to value-add components. Components in the laboratory could eventually be promoted to the standard or extras incubators upon review of the updated proposal.<br />
Occasionally the Zend team may recommend that a component should be migrated from the extras library to the standard library or vice versa. This will only occur in a major release of Zend Framework and as the result of changes in market conditions and/or Zend's ZF support strategy.<br />
More information about the individual libraries may be found in the sidebar.</p>
</ac:rich-text-body></ac:macro>

{column}
<ac:macro ac:name="column"><ac:parameter ac:name="width">30%</ac:parameter><ac:rich-text-body>

{column:width=30%}
<ac:macro ac:name="panel"><ac:parameter ac:name="title">Zend Framework Libraries</ac:parameter><ac:parameter ac:name="borderStyle">solid</ac:parameter><ac:parameter ac:name="borderColor">#ccc</ac:parameter><ac:parameter ac:name="titleBGColor">#FFFFFF</ac:parameter><ac:parameter ac:name="bgColor">#FFFFFF</ac:parameter><ac:rich-text-body>

{panel:title=Zend Framework Libraries| borderStyle=solid| borderColor=#ccc| titleBGColor=#FFFFFF| bgColor=#FFFFFF}
<h4>Laboratory</h4>
<ac:macro ac:name="info"><ac:rich-text-body>
<p>All components in the laboratory will not be officially supported by Zend, although these components may or may not be supported by Zend in the future depending on further promotions.</p></ac:rich-text-body></ac:macro>
<p>Components or proposals that are not yet approved for the Zend Framework- but show potential- are encouraged to mature in the laboratory.<br />
All components introduced in the laboratory should follow the naming convention of 'ZendL_*'.<br />
The proposal author may contact the Zend Framework Core team and request that the proposal be moved back to the <ac:link><ri:page ri:content-title="Ready for Recommendation" /></ac:link> section after the component or proposal has sufficiently matured to warrant a Zend team review. The original Zend liaison- if available- will again serve as your liaison for the updated proposal. If that person can not serve as your proposal's liaison for any reason, another Zend team member will be assigned to your liaison for the proposal.<br />
All new issues reported against the component should be tracked in laboratory project provided by the Zend Framework <a href="http://framework.zend.com/issues">issue tracker</a>.<br />
If a component is moved from the laboratory to another library, your liaison will move its issue tracker component from the laboratory project to the appropriate project in the issue tracker and any material from the laboratory Subversion directory to the appropriate location in SVN.<br />
Zend does <strong>not</strong> recommend components in the laboratory for production use.</p>

h4. Laboratory
{info}
All components in the laboratory will not be officially supported by Zend, although these components may or may not be supported by Zend in the future depending on further promotions.
{info}
Components or proposals that are not yet approved for the Zend Framework- but show potential- are encouraged to mature in the laboratory.
All components introduced in the laboratory should follow the naming convention of 'ZendL_*'.
The proposal author may contact the Zend Framework Core team and request that the proposal be moved back to the [Ready for Recommendation] section after the component or proposal has sufficiently matured to warrant a Zend team review. The original Zend liaison- if available- will again serve as your liaison for the updated proposal. If that person can not serve as your proposal's liaison for any reason, another Zend team member will be assigned to your liaison for the proposal.
All new issues reported against the component should be tracked in laboratory project provided by the Zend Framework [issue tracker|http://framework.zend.com/issues].
If a component is moved from the laboratory to another library, your liaison will move its issue tracker component from the laboratory project to the appropriate project in the issue tracker and any material from the laboratory Subversion directory to the appropriate location in SVN.
Zend does *not* recommend components in the laboratory for production use.
<h3>Standard Incubator</h3>
<ac:macro ac:name="info"><ac:rich-text-body>
<p>All components in the standard incubator will not be officially supported by Zend, although these components will be supported by Zend if and when they are promoted to the standard library.</p></ac:rich-text-body></ac:macro>
<p>Proposals approved for the standard incubator will be considered for eventual inclusion in the standard Zend Framework library, but they must remain in the standard incubator until they are fully developed and ready for promotion to the standard library.<br />
In the standard incubator, the proposal author begins initial development with or without the assistance of other community members. Documentation and tests are also developed at this time, according to the <ac:link><ri:page ri:content-title="Documentation Standard" ri:space-key="ZFDEV" /><ac:link-body>Zend Framework Documentation Standard</ac:link-body></ac:link> and <ac:link><ri:page ri:content-title="Testing Standards" ri:space-key="ZFDEV" /><ac:link-body>Zend Framework Testing Standards</ac:link-body></ac:link>. In particular, all features must be documented with sufficient unit test code coverage.<br />
All components introduced in the standard incubator should follow the naming convention of 'Zend_*'.<br />
All new issues reported against the component should be tracked in the <a href="http://framework.zend.com/issues">issue tracker</a> in the standard incubator project.<br />
If a component is moved from the standard incubator to another library, your liaison will move its issue tracker component from the standard incubator project to the appropriate project and any material from the standard incubator Subversion directory to the appropriate location in SVN.<br />
Zend does <strong>not</strong> recommend components in the standard incubator for production use.</p>

h3. Standard Incubator
{info}
All components in the standard incubator will not be officially supported by Zend, although these components will be supported by Zend if and when they are promoted to the standard library.
{info}
Proposals approved for the standard incubator will be considered for eventual inclusion in the standard Zend Framework library, but they must remain in the standard incubator until they are fully developed and ready for promotion to the standard library.
In the standard incubator, the proposal author begins initial development with or without the assistance of other community members. Documentation and tests are also developed at this time, according to the [Zend Framework Documentation Standard|ZFDEV:Documentation Standard] and [Zend Framework Testing Standards|ZFDEV:Testing Standards]. In particular, all features must be documented with sufficient unit test code coverage.
All components introduced in the standard incubator should follow the naming convention of 'Zend_*'.
All new issues reported against the component should be tracked in the [issue tracker|http://framework.zend.com/issues] in the standard incubator project.
<h3>Extras Incubator</h3>
<ac:macro ac:name="info"><ac:rich-text-body>
<p>All components in the extras incubator will not be officially supported by Zend, and Zend does not intend to support these components in the future.</p></ac:rich-text-body></ac:macro>
<p>Proposals approved for the extras incubator will be considered for eventual inclusion in the extras library of Zend Framework, but they must remain in the extras incubator until they are fully developed and ready for promotion to the extras library.<br />
In the extras incubator, the proposal author begins initial development with or without the assistance of other community members. Documentation and tests are also developed at this time, according to the <ac:link><ri:page ri:content-title="Documentation Standard" ri:space-key="ZFDEV" /><ac:link-body>Zend Framework Documentation Standard</ac:link-body></ac:link> and <ac:link><ri:page ri:content-title="Testing Standards" ri:space-key="ZFDEV" /><ac:link-body>Zend Framework Testing Standards</ac:link-body></ac:link>. In particular, all features must be documented with sufficient unit test code coverage.<br />
All components introduced in the extras incubator should follow the simple naming convention of 'ZendX_*'.<br />
All new issues reported against the component should be tracked in the <a href="http://framework.zend.com/issues">issue tracker</a> in the extras incubator project.<br />
If a component is moved from the standard extras incubator to another library, your liaison will move its issue tracker component from the standard extras incubator project to the appropriate project and any material from the standard extras incubator Subversion directory to the appropriate location in SVN.<br />
Zend does *not* recommend components in the standard incubator for production use.
Zend does <strong>not</strong> recommend components in the extras incubator for production use.</p>

h3. Extras Incubator
{info}
All components in the extras incubator will not be officially supported by Zend, and Zend does not intend to support these components in the future.
{info}
Proposals approved for the extras incubator will be considered for eventual inclusion in the extras library of Zend Framework, but they must remain in the extras incubator until they are fully developed and ready for promotion to the extras library.
In the extras incubator, the proposal author begins initial development with or without the assistance of other community members. Documentation and tests are also developed at this time, according to the [Zend Framework Documentation Standard|ZFDEV:Documentation Standard] and [Zend Framework Testing Standards|ZFDEV:Testing Standards]. In particular, all features must be documented with sufficient unit test code coverage.
All components introduced in the extras incubator should follow the simple naming convention of 'ZendX_*'.
All new issues reported against the component should be tracked in the [issue tracker|http://framework.zend.com/issues] in the extras incubator project.
If a component is moved from the extras incubator to another library, your liaison will move its issue tracker component from the extras incubator project to the appropriate project and any material from the extras incubator Subversion directory to the appropriate location in SVN.
Zend does *not* recommend components in the extras incubator for production use.
<h3>Core Library</h3>
<ac:macro ac:name="info"><ac:rich-text-body>
<p>All components in the standard library are officially supported by Zend.</p></ac:rich-text-body></ac:macro>
<p>A component or proposal that has been fully developed, documented, and tested according to our <ac:link><ri:page ri:content-title="Documentation Standard" ri:space-key="ZFDEV" /><ac:link-body>documentation standard</ac:link-body></ac:link> and <ac:link><ri:page ri:content-title="Testing Standards" ri:space-key="ZFDEV" /><ac:link-body>testing standards</ac:link-body></ac:link> in the standard incubator may be approved by the Zend team for inclusion in the ZF standard library. At this time, your liaison will move its issue tracker component to the Zend Framework standard library project and Subversion materials to the standard library location in SVN.<br />
Zend <strong>does</strong> recommend components in the standard library for production use.</p>

h3. Core Library
{info}
All components in the standard library are officially supported by Zend.
{info}
A component or proposal that has been fully developed, documented, and tested according to our [documentation standard|ZFDEV:Documentation Standard] and [testing standards|ZFDEV:Testing Standards] in the standard incubator may be approved by the Zend team for inclusion in the ZF standard library. At this time, your liaison will move its issue tracker component to the Zend Framework standard library project and Subversion materials to the standard library location in SVN.
Zend *does* recommend components in the standard library for production use.
<h3>Extras Library</h3>
<ac:macro ac:name="info"><ac:rich-text-body>
<p>All components in the Extras Library are not officially supported by Zend.</p></ac:rich-text-body></ac:macro>
<p>A component or proposal that has been fully developed, documented, and tested according to our <ac:link><ri:page ri:content-title="Documentation Standard" ri:space-key="ZFDEV" /><ac:link-body>documentation standard</ac:link-body></ac:link> and <ac:link><ri:page ri:content-title="Testing Standards" ri:space-key="ZFDEV" /><ac:link-body>sesting standards</ac:link-body></ac:link> in the extras incubator may be approved by the Zend team for inclusion in the ZF extras library. At this time, your liaison will move its issue tracker component to the Zend Framework extras library project and Subversion materials to the extras library location in SVN.<br />
Zend <strong>does</strong> recommend components in the extras library for production use.</p>

h3. Extras Library
{info}
All components in the Extras Library are not officially supported by Zend.
{info}
A component or proposal that has been fully developed, documented, and tested according to our [documentation standard|ZFDEV:Documentation Standard] and [sesting standards|ZFDEV:Testing Standards] in the extras incubator may be approved by the Zend team for inclusion in the ZF extras library. At this time, your liaison will move its issue tracker component to the Zend Framework extras library project and Subversion materials to the extras library location in SVN.
Zend *does* recommend components in the extras library for production use.
<h3>Archived Proposals</h3>

h3. Archived Proposals
<p>A proposal may not be promoted to any repository, one proposal may be superceded by a different proposal, several proposals may be collected into one proposal with a larger scope, an author could change his or her mind and abandon the proposal, or authors may abandon the proposal <sub>de facto</sub> by failing to update them for 3 months or longer. Members of the Zend team will routinely move such proposal documents to the <ac:link><ri:page ri:content-title="Archived Proposals" /></ac:link> section. Any corresponding code or documentation stored in the Subversion repository will also be archived. No resources will be provided by the Zend Framework project to archived proposals. Archived proposals may be updated and resubmitted at any time by the original authors or other community members.</p>
</ac:rich-text-body></ac:macro>
A proposal may not be promoted to any repository, one proposal may be superceded by a different proposal, several proposals may be collected into one proposal with a larger scope, an author could change his or her mind and abandon the proposal, or authors may abandon the proposal ~de facto~ by failing to update them for 3 months or longer. Members of the Zend team will routinely move such proposal documents to the [Archived Proposals] section. Any corresponding code or documentation stored in the Subversion repository will also be archived. No resources will be provided by the Zend Framework project to archived proposals. Archived proposals may be updated and resubmitted at any time by the original authors or other community members.
</ac:rich-text-body></ac:macro>
{panel} </ac:rich-text-body></ac:macro>

{column}

{section}