Section 1. Guiding Principle.
The Open Platform for NFV Project (OPNFV) will operate transparently, openly, collaboratively, and ethically. Project proposals, timelines, and status must not merely be open, but also easily visible to outsiders.
To encourage a thriving community, the OPNFV community has developed and will maintain a code of conduct for community participation, which is available at the Community Code of Conduct page.
Section 2. Evolution of OPNFV Governance.
Most large, complex open source communities have both a business and a technical governance model. OPNFV’s technical leadership contains both a Technical Steering Committee (TSC) and Project Leads for major components. OPNFV’s business leadership is instantiated in a Board of Directors (the “Board”).
This Technical Steering Committee Charter reflects a carefully constructed balanced role for the TSC and the Board in the governance of OPNFV. The charter amendment process is for the TSC to propose changes using simple majority of the full TSC, the proposed changes being subject to review and approval by the Board. The board may additionally make amendments to the TSC charter at any time.
Section 3. Board’s Role in Setting OPNFV Strategic Direction.
The Board will set overall Project Policy in consultation with the TSC. The policy will describe the overarching scope of the OPNFV initiative, OPNFV’s technical vision and direction and project release guidelines in the form of expected cadence and intent. The Board will use the TSC as a delegate body for governing technical implementation, individual project scope and direction while they remain within the scope and direction of the policies as described in the TSC Policy document and approved by the Board.
Section 4. Establishment of the TSC.
The TSC members shall consist of Platinum member designates. The TSC may choose to create community representative votes on the TSC in order to include more community members from the OPNFV projects. Such positions would be open for individual nominations and active committers would elect the representative to serve a term of one year. Prior to the election of community representatives, the TSC will make recommendation on the number of community representatives and election procedures for approval by the OPNFV Board.
No single company, including its affiliated companies as defined in the Bylaws, may have more than two votes on the TSC. If a single company and its affiliated companies merits more than two TSC votes, either the designate or elected representative must stand down.
The TSC will elect from amongst voting TSC members a chairperson who will represent the TSC to the Board for a term of one year according to the OPNFV ByLaws. The TSC shall hold elections to select a TSC Chair annually; there are no limits on the number of terms a TSC Chair may serve.
Section 5. Responsibilities of the TSC.
Subject to such policies as may be set by the Board, the TSC is responsible for simultaneous release dates, release quality standards, technical best practices (including the establishment and maintenance of a Development Process), monitoring technical progress, mediating technical conflicts between Committers and Project Leads, and organizing inter-project collaboration. The TSC will define OPNFV’s release vehicles and serve as OPNFV’s primary technical liaison body with other consortiums and groups.
Section 6. OPNFV Operations.
The TSC will establish and maintain a development process for OPNFV.
There will be multiple projects under OPNFV. Each project must be within such policies as may be set by the Board, have a well-defined scope and must work within that scope. The development process will provide for projects to follow the life-cycle process as described in the Project Lifecycle document. The development process will include a process for the TSC to oversee and approve changes in the lifecycle of a project which will include consideration of the following criteria:
- Cleanliness of code base.
- Ample and diverse Contributors and Committers to assure vitality of the project.
- Stability (e.g. presence of test suites and use of an appropriate source-code control system).
- Predictability of releases.
- Alignment with OPNFV’s goals and priorities.
Section 7. Elections and Voting
Leadership roles in OPNFV, project leadership, and TSC community representative roles, will be held by peer elected representatives of the community. The development process for OPNFV will include provisions for a voting process to be implemented for decision-making in accordance with the following guidelines:
For election of persons (TSC chairs, Project Leads, etc.) a multiple-candidate method should be used, e.g.:
- Condorcet: Election method that elects the candidate that would win by majority rule in all pairings against the other candidates or
- Single Transferable Vote: A voting system designed to achieve proportional representation through ranked voting in multi-seat constituencies
Multiple-candidate methods reduce to simple majority voting when there is only one position to be filled.
For internal project decisions where no consensus can be reached, a majority vote among all Committers of the project via +1 voting should be used.
A simple majority voting should be used for decisions within the TSC at which a quorum is present, unless otherwise required. (A majority of TSC representatives then in office shall constitute a quorum.)
The development process will include such processes as may be specified by the Board from time to time relating to the intake and license compliance review of contributions.
Section 8. Project Roles.
Each project has one or more Contributors, who provide project contributions such as code and documentation, and one or more Committers, who may also contribute and additionally control technical direction and the project repository. A Project Lead that sets overall direction for the project and reports to the TSC will head each project up.
Committers: For each project there is a set of people with rights to commit code or artifacts to the source code management system: the Committers.
The Committers will be the decision makers on design, code, packaging, and patches for their project. They must responsibly participate in the consensus decisions of the project.
Committer rights are earned via code contribution and community trust. Committers select and vote for new Committers. The TSC has the authority to remove a committer. A standard meritocracy model with new Committers will be approved and implemented by the TSC which will include provision for fully open code submission, review, acceptance, build, test, delivery, and support model.
Committer rights are per project; being a Committer on one project does not necessarily give an individual committer rights on any other project.
Initial Committers and a nominated Project Lead will be specified at project creation. Additional Committers will be admitted by a vote of existing Committers with appropriate process to handle dissent. Committers are not necessarily from Member companies. Committers are best available individuals, but usually full-time for any components in active development.
The Committers will use the process established in the OPNFV Project Lifecycle document and development process maintained by the TSC to manage releases and accept/force modifications/reject code submissions and to add/delete Committers (and other development details).
A Committer who is disruptive, or has been inactive for an extended period (e.g., six or more months) may have his or her Committer status revoked by the TSC. Project Leads must request the TSC for such an action to be taken.
Contributors: Most Contributors work with their Committer and their component’s sub-community. They contribute code or other artifacts, but do not have the right to commit to the code base. A Contributor may be promoted to a Committer by the projects’ Committers. Contributors should rarely be encumbered by the TSC and never by the Board.
Project Leads: The Project Lead is a Committer selected by vote from the Committers in the project. If there is initially only one member of the project, then that member is automatically the Project Lead. It is possible, and in some cases desirable, for one person to take on roles of Project Lead, Committer, and Contributor.
The TSC shall in conjunction with the OPNFV community refine, and provide clarification of, the project roles and responsibilities.