The Alfresco Community Committer Program (ACCP) is sponsored by Alfresco to foster a deeper level of interaction with developers in the Alfresco community, promote an increased level of high quality software contributions to the Alfresco platform, and facilitate a structured process for incorporating contributions into Alfrescoâ€™s Community and Enterprise releases. Software contributions accepted into ACCP include any and all software extensions, add-ons, plug-ins, integrations, and the like that enhance Alfrescoâ€™s core capabilities, meet a certain set of standards, and attain voting approval by the ACCP Committee.
The ACCP Committee is a community-led, volunteer group that governs the processes and standards by which software contributions will be incorporated into ACCP. As such, Alfresco employees shall participate on the Committee primarily in an advisory capacity only.
The Committee shall define the minimum criteria and standards that potential contributions must meet to be considered for ACCP, approve candidate contributions for inclusion into ACCP through a voting process, and communicate all actions, standards, rules, and plans to the Alfresco community in an open, transparent manner. In addition, the Committee shall govern the operating principles for ACCP as outlined in this Charter.
Software Project Criteria and Standards
There are two levels of status within ACCP:
1. Incubator Status - Entry level of inclusion into ACCP. Software project resides with Community SVN. 2. Community Status - Software project is distributed as part of the Alfresco Community Edition.
Each level has a certain set of criteria to be considered for inclusion into ACCP. Minimum requirements are the requirements a contribution must meet to be accepted, divided into requirements for Community and requirements for the incubator. Other considerations is a list of more subjective factors having to do with the use case for the contribution, the team that's behind the contribution, and the general viability of the contribution as a part of the Community code line. These aren't strict requirements, but the more of these a contribution aligns with, the more likely it is to gain Committee acceptance -- both for Incubator and Community status.
Minimum Requirements (Incubator):
1. MUST include an easy-to-install package. In general, this means using the generally accepted distribution approach for the type of contribution (e.g., an AMP for server extensions, a JAR for Share extensions, a WAR/EAR for portlets and web applications, etc.) 2. MUST have a repeatable build that could be automated as part of a continuous build process (Ant or Maven) 3. MUST include source code. The source and any dependent libraries included with the distribution must be licensed in such a way as to not conflict with the Alfresco Community license. 4. MUST contain basic documentation
Minimum Requirements (Community):
1. All of the above minimum requirements for Incubator 2. MUST meet minimum coding standards documented here: http://wiki.alfresco.com/wiki/Coding_Standards 3. MUST include unit tests 4. MUST contain documentation that, as a minimum, includes: 1. Brief 'about' 2. Dependencies 3. Install steps 4. Test steps
1. High code quality, good test coverage, useful documentation and comments 2. Leverages Maven for dependency management, build 3. Contribution is congruent with high-level Alfresco product direction 4. Contribution generated buzz/interest in incubator * Good ratings, feedback * Evidence of end-user adoption 5. Project lead is a previous Community contributor 6. Project lead has a team of at least one other that can help 7. Contribution has synergies with or is a dependency of other projects 8. Contribution has good potential 'staying power' * Project lead is particularly passionate about this contribution * Contribution is important to project lead's company (products, services, solutions, marketing message, etc.)
The ACCP Program is governed by a volunteer Committee, which establishes and maintains the operating procedures for the program and, through a well-defined nomination and voting process, determines the software projects incorporated into ACCP.
Committee members shall have one of the following roles, which determine their responsibility and priveleges:
* Regular member * Chairperson * Secretary * Non-voting member * Emeritus Member
Regular Members have a right to vote on software projects and other motions raised to the Committee that require a vote. Each Regular Member has a single vote. In addition, Regular Members may raise motions to be considered by the Committee. New members to the Committee may be nominated by at least one, and must be approved by a majority vote of the Committee. Generally, members nominated should be active within the Alfresco community with a track record of contribution and participation. Regular Members may also be removed from the Committee upon a majority vote of the Committee, or upon voluntary resignation. The size of the Committee shall be no larger than nine Regular Members.
The Chairperson is a Regular member with additional duties to coordinate and facilitate meetings and any other ACCP activities. Upon nomination, a Chairperson is elected by the Committee by a simple plurality voting process (i.e., if more than one nominee, the one with the most votes wins). The Chairperson shall serve a term no less than six months and no greater than nine months. The Chairperson may also serve as the Secretary, or may appoint a Secretary at any time.
The Secretary is a Regular Member with additional duties consisting of recording and distributing meeting minutes and voting results from each Committee meeting.
Non-voting Members are individuals that have been approved by the Committee to attend meetings to participate and provide input to the Committee, but have no voting privileges. Alfresco employees are classified as Non-voting Members.
Emeritus Members are Regular Members who have previously served on the ACCP Committee and left in good standing. Emeritus Members may attend a Committee meeting if invited by at least one Regular Member to provide input. Emeritus Members have no voting privileges.
Voting for software projects to be included into ACCP shall be as follows:
* Votes are yes-no * Software projects shall be nominated for consideration by any Committee Member to the Chairperson prior to a Voting procedure. * The Committee shall be responsive to Community requests for Project consideration * An automated method shall be used to streamline the process for submitting project nomination requests to the Committee, and for the Voting process itself (e.g., email-based voting) * Approval for inclusion into Incubator requires simple Majority of Yes votes from Regular Members * Approval for inclusion into Community requires simple Majority of Yes votes from Regular Members and Ratification by Alfresco Software Ltd.
Voting for membership to the ACCP committee, and to change ACCP rules and procedures shall be as follows:
* Votes are yes-no * Any Regular Member may raise a Motion to add or remove a Committee Member * Any Regular Member may raise a Motion to propose a change to the ACCP Charter and operating procedures * Motions must be raised 3 days prior to a Committee Meeting * The voting process shall be held only during Committee Membership meetings to allow for discussion of Motions prior to a vote. * Changes to Committee Membership require a simple Majority of Yes votes from Regular Members * Changes to Charter and/or Operating Procedures require a two-thirds Majority of Yes votes from Regular Members