This version of governance is no longer in use. See the new governance version 2.0.
version 1.0 ratified at 2/9/15 board meeting
version 1.1 (below) has been edited for the following:
Remove listing of initial team members. Instead point to the steering team pages.
Clarify voting processes. For example, there is no need to vote for use case steering team members. By definition they are the board members from the service providers.
Clarify definition of roles to be consistent with the roles defined by the technical steering team.
Governance of the ONOS™ project is a hybrid. It attempts to take what has worked well for open source projects and leave out what didn’t work so well. Mostly, it is governed as a technical meritocracy – those who contribute the most have the most influence on the technical direction and decisions. There is also an element of benevolent stewardship. This is what gives the project its strong vision, goals, and technical shepherding. More specifically, ONOS governance is
The ONOS project is governed by four teams and a board of advisorsof directors. The four teams are the technical steering team, the use case team, the release management team, and the community team. ONOS subprojects are formed as part of one of the four teams.
The Chairman of the Board is chosen by the Open Networking Laboratory Board of Directors. Each organization is responsible for nominating their board member. The chairman of the board must approve the nomination. Board members are (re) elected nominated/approved every year. Elections Nominations/approvals are held in the first quarter of each calendar year. If any board member must leave before the end of their term, their organization will nominate a new member and that member must be approved by the Chairman of the Board. If the Chairman of the Board must step down, then the ON.Lab Board of Directors will select a new Chairman.
2016 Elections Process and Information can be found here.
There are three classes of voting: ON.Lab, Vendors and Service Providers. Each receives votes according to the following allocation of 100 votes. Votes may be fractional.
The technical steering team is responsible for all technical decisions having to do with the ONOS core codebase. The ONOS core codebase is the software distribution represented by the ONOS trademark. Use case applications, southbound plug-ins for non-OpenFlow devices, sample applications, vendor proprietary extensions may or may not be part of the ONOS core. It is entirely up to the technical steering team to decide what constitutes the ONOS core codebase.
Initial Membership of Technical Steering Team
The membership is found on the home page.
- "Contributor": Anyone who signs a CLA and contributes a patchset and has had their code accepted in review.
- "Reviewer": Everyone can review any patchset.
- "Module owner": Someone who can give a +2 review for a part of the codebase and submit code in that area
- "Project owner": Someone who can give a +2 review and submit anywhere in the codebase
Voting member: A contributor, a module owner, or a project owner.
The New technical steering team members will be elected on a yearly basis. Elections are held in the first quarter of each calendar year. At the time of election the following occurs:
- The lead is (re) appointed by the board of Open Networking Laboratory.
- The lead decides the appropriate size of the technical steering team. The ON.Lab board of directors has veto power on the choice of size.
- Technical members are nominated by anyone, including themselves. They must already be active voting members.
- The technical community of voting members votes to elect steering team members. Each voter has one vote for each position (if steering team is 3 membersthere are 3 positions up to vote, then each voter has 3 votes). A voter may only cast 1 vote per candidate.
- Ties are broken by the technical steering team leader.
The use case steering team is responsible for choosing and prioritizing the use cases worked on by the community.
Each service provider has one representative on the use case steering team.The current team members are found on their home page.
The team representatives will be appointed are by definition the group of board members from the service providers. The lead is elected on a yearly basis by their organization, or when they join ONOS, except for the team lead who will be elected every year by the Board of Advisorsby the board. How each service provider chooses their representative is outside the scope of this document. Elections are held in the first quarter of each calendar year. At the time of the election, the following will take place:
- Members of the team are The team lead is nominated by anyoneany service provider partner, including themselves, to be the team lead.
- The Board entire board votes on the candidates to select the team lead.
Requirements database maintenance (Jira)
Requirements acceptance process
Requirements prioritization process
Release content prioritization
Release process (how subprojects get project code integrated)
Team Lead Election
The team lead is initially Bill Snow. Elections are held in the first quarter of each calendar year. The team lead of the release management team will be (re) elected by the technical committers. during an election, the following will occur:
proactively checking in with members to see what can be improved
starting projects to improve the community
providing a structured way to handle conflict in the community
making sure communication tools work well for the community
owning the on-ramp process for the community
The membership will initially be the following people:
Team Lead Election
The team lead is initially David Boswell. Elections are held in the first quarter of each calendar year. The team lead of the community steering team will be (re) elected by the technical committers. In an election, the following will occur:
- Lead candidates are nominated by anyone, including themselves.
- The technical community of committers and maintainers votes to elect the lead. Each voter has one vote.
Anyone may volunteer to be a member of the team. It is up to the team lead to decide how large the team is and who is accepted onto the team.