From c92fa6310fa934abc26e3ff04872d39d4a6a8d27 Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Wed, 13 May 2015 12:56:40 -0700 Subject: [PATCH] Update team structure and add council In order to help the infrastructure project scale, codify how sub teams should operate independently to achive agreed upon goals, and create a process for communal decision making around overall direction. Change-Id: Iea53a45bb533968a13a85c0e7fbb0787325e4095 --- doc/source/project.rst | 164 +++++++++++++++++++++++++++++++---------- 1 file changed, 126 insertions(+), 38 deletions(-) diff --git a/doc/source/project.rst b/doc/source/project.rst index ef74281002..4203c535d2 100644 --- a/doc/source/project.rst +++ b/doc/source/project.rst @@ -58,44 +58,6 @@ presentations team members have given about the infrastructure. And if you have any questions, please ask. -Team -==== - -The infrastructure team is open, meaning anyone may join and begin -contributing with no formal process. As an individual's contributions -and involvement grow, there are more formal roles in the team: - -Core Members - Core team members are able to approve or reject proposed changes to - any of the infrastructure projects. If an individual shows - commitment and aptitude in code reviews, the current core team - membership will take notice and propose that person for inclusion in - the core team, and hold a vote to make the final determination. - - In addition to the project-wide infrastructure group, individual - infrastructure projects (such as Jenkins Job Builder or Reviewday) - may also have their own core teams as necessary. - -Root Members - While core membership is directly analogous to the same system in - other OpenStack projects, because the infrastructure team operates - production servers, there is another sub-group of the infrastructure - team that has root access to all servers. Root membership is - handled in the same way as core membership. Root members must also - be core members, but core members may not necessarily be root - members. - - Root access is generally only necessary to launch new servers, - perform low-level maintenance, manage DNS, or fix problems. In - general it is not needed for day-to-day system administration and - configuration which is done in puppet (where anyone may propose - changes). Therefore it is generally reserved for people who are - well versed in infrastructure operations and can commit to spending - a significant amount of time troubleshooting on servers. - - Some individuals may need root access to individual servers; in - these cases the core group may grant root access on a limited basis. - Bugs ==== @@ -109,3 +71,129 @@ There is also a low-hanging-fruit tag associated with bugs that should provide a gentle introduction to working on the infrastructure project without needing too much in-depth knowledge or access. +Priority Efforts +================ + +The infrastructure project designates a small number of efforts +underway at any time as priority efforts. These are areas where the +project has decided to focus resources to achieve major initiatives. +These help reviewers prioritize their review workload and help to +ensure the project accomplishes important tasks. Priority efforts are +a great way to get involved in the project as they will generally +provide the most interaction with experienced contributors. + +Priority efforts are documented in the infra-specs repo. Each +priority effort has one entry in infra-specs, though that may link to +multiple smaller specifications for individual units of work if the +effort is sufficiently large. Each priority effort also has a single +person designated as the driver of that effort. That person is +responsible for ensuring that anything blocking progress of the effort +is discussed at team meetings and may be a good point of contact for +someone who wants to get involved. + +Changes not related to priority efforts will be reviewed by the core +review team as time permits. This may mean that they spend +considerable time in review, but they will be reviewed eventually. If +a change is urgent, you might consider contacting someone in +#openstack-infra on Freenode. + +Teams +===== + +The infrastructure project is open, meaning anyone may join and begin +contributing with no formal process. As an individual's contributions +and involvement grow, there are more formal roles. These roles are +designed to empower groups of people to get work done in their area of +expertise and interest, as well as supply a strong sense of direction +for the infrastructure project as a whole. Everyone participating in +the project is encouraged to expand their own knowledge while helping +to support and mentor others as they progress. + +Core Teams + The infrastructure project is composed of a large number of + subprojects. Every source code repository has its own core team + which is responsible for maintenance of that subproject, with some + groups of repositories sharing a core team. These core teams are + empowered to approve changes that reflect the currently understood + project direction. Changes in project direction or major new + initiatives must be approved by the infrastructure council. + + Any existing core team member may nominate someone for addition to + that core team by private communication with the infrastructure PTL. + The PTL will consider the opinions of the existing core team members + and the review history of the person in question, but final + determination of core team membership (additions and removals) rests + with the PTL. This process is private to enable honest evaluations + in a safe environment. + +Infrastructure Core Team + Individuals who show an interest in a wide range of areas of the + infrastructure project may be asked to join the infra-core team. To + provide a baseline level of support to all of our subprojects and to + ensure that important efforts may move forward, this team has + approval rights in all infrastructure repositories. Members of this + team may not be experts in all areas, but know their limits, and + will not exceed those limits when reviewing changes outside of their + area of expertise. + + They are expected to have a wide general knowledge of what is going + on in the infrastructure project and to help guide overall project + direction. To that end, they are able to veto specs proposed to the + infrastructure council. + +Infrastructure Council + The infrastructure council is the technical design body for the + infrastructure project. While individuals and groups are empowered + to execute the designs from the concil, major technical designs are + agreed upon as a group to ensure that our large set of projects are + all working together to the same end. The council need not delve + too deeply into technical detail -- just enough so that development + efforts may happen in parallel and work toward a common goal. + + All members of any infrastructure project core team have a seat on + the Council. The Council is responsible for approving changes in + project direction, major new initiatives, setting priority efforts, + and addition or removal of projects. + + Any such changes should be proposed to the infra-specs repository. + Anyone is welcome to review specs and they are expected to evolve + during the review process. When a change to infra-specs is ready + for final approval, the author will add the change to the infra team + meeting agenda so that the entire team is notified that the spec is + ready. Members of the council will vote by leaving reviews on the + spec to approve or reject the change. The determination will be + based on a majority vote, with members of the infra-core team able + to veto, and in the case of a tie, the PTL will cast the deciding + vote. The PTL will execute the workflow action on the change after + the vote. + + Specs are living documents, and once approved, should be maintained + for the duration of the effort they describe. Substantial changes + in direction should go through the same process described above. + The PTL may chose to approve insubstantial changes without the + formal council voting process. + +Infrastructure Root Team + While core membership is analogous to the same system in other + OpenStack projects, because the infrastructure team operates + production servers there is another sub-group of the infrastructure + team that has root access to all servers. Root membership is + handled in the same way as core membership. Root members must also + be infra-core members, but infra-core members may not necessarily be + root members. This is because primary system administration is + performed through code review, so anyone able to log into a machine + to execute commands must be able to approve those same commands in + configuration management; otherwise it would be easier for a person + to bypass puppet than use it in the intended fashion. + + Root access is generally only necessary to launch new servers, + perform low-level maintenance, manage DNS, or fix problems. In + general it is not needed for day-to-day system administration and + configuration which is done in puppet (where anyone may propose + changes). Therefore it is generally reserved for people who are + well versed in infrastructure operations and can commit to spending + a significant amount of time troubleshooting on servers. + + Some individuals may need root access to individual servers; in + these cases the infra-core group may grant root access on a limited + basis.