Deprecate Fuel-wide CL role

As far as we are on our way to make Fuel even
more modular this patch deprecates the role CL
as a Fuel-wide role. Instead Fuel should become
and aggregator of features that provide independent
components. It should be up to a component team
to decide whether they need formal or informal CL.
It also should be up to them how they make architectural
and planning decisions.

Change-Id: Idc35b37711e329a41501246cd082d34eef1e2207
This commit is contained in:
Vladimir Kozhukalov 2016-04-04 18:41:53 +03:00
parent 415c749031
commit f66d1f5a1f
1 changed files with 37 additions and 34 deletions

View File

@ -73,16 +73,10 @@ Core Reviewer:
of code reviews and was promoted to core reviewers team by consensus of of code reviews and was promoted to core reviewers team by consensus of
other core reviewers of the same Fuel component. other core reviewers of the same Fuel component.
Component Lead:
Defines architecture of a particular module or component in Fuel, resolves
technical disputes in their area of responsibility. All design specs that
impact a component must be approved by the corresponding component lead.
Fuel PTL: Fuel PTL:
Project Team Lead in its OpenStack standard definition. Delegates most of Project Team Lead in its OpenStack standard definition. Delegates most of
the review and design work to component leads, resolves technical disputes the review and design work to component teams, resolves technical disputes
across components and for components that don't have dedicated component across components.
leads.
Code Review Workflow Code Review Workflow
-------------------- --------------------
@ -101,7 +95,7 @@ Typical commit goes through the following code review stages:
3. A commit that has a +2 vote from a core reviewer can be merged by another 3. A commit that has a +2 vote from a core reviewer can be merged by another
core reviewer (may be the same core reviewer if the repository has only 2 or core reviewer (may be the same core reviewer if the repository has only 2 or
less core reviewers), or by the component lead of the modified component. less core reviewers).
Governance Process Governance Process
------------------ ------------------
@ -110,21 +104,19 @@ Fuel PTL is elected twice a year following the same cycle and rules as other
OpenStack projects: all committers to all Fuel projects (fuel-* and OpenStack projects: all committers to all Fuel projects (fuel-* and
python-fuelclient) over the last year can vote and can self-nominate. python-fuelclient) over the last year can vote and can self-nominate.
Fuel component leads are elected twice a year immediately after PTL elections, Fuel aggregates features provided by Fuel components.
following the same process. All committers to the component code repository as Components could be either Fuel driven (like Nailgun, Astute, UI) or
defined below over the last year can vote and can self-nominate. Same person generic in a sense that Fuel is not the only use case for such components
can't be PTL and component lead in the same cycle. (e.g. Keystone, potentially Neutron, Ironic, Glance, etc.). Component
teams are independent but should interact with each other while
working on features.
Following Fuel components have elected leads: Core team of a component is responsible for code review in their component.
It is totally up to a component team (not Fuel team as a whole)
* fuel-library to decide whether they resolve review conflicts by consensus or they delegate
their voices to a formal or inforaml component lead. It should be up to a
* fuel-web component team how they share review responsibilites and how they make
architecture and planning decisions.
* fuel-ui
In other repositories, there is no component leads, and technical decisions are
made by consensus of core reviewers, and disputes are resolved by Fuel PTL.
Core reviewers are approved by consensus of existing core reviewers, following Core reviewers are approved by consensus of existing core reviewers, following
the same process as with other OpenStack projects. Core reviewers can the same process as with other OpenStack projects. Core reviewers can
@ -137,6 +129,23 @@ propose an update of a MAINTAINERS file; a core reviewer can approve an update
that has a +2 from another core reviewer; if the update adds new maintainers, that has a +2 from another core reviewer; if the update adds new maintainers,
it must also have +1 votes from all added maintainers. it must also have +1 votes from all added maintainers.
Since components could be generic there must be two levels of design.
By-component design specs describe component changes that are not necessarily
related to Fuel and these specs are out of the scope of this policy.
Fuel design specs describe Fuel features that usually require coordinated
changes in multiple components. Each Fuel spec must be reviewed
and approved (+2) by matter experts from at least the following backgrounds
(even if respective section is empty):
* Web UI
* Nailgun&Orchestration
* Fuel Library
It is up to the Fuel-specs core team to involve other SMEs to review a particular
spec if specific expertise is required.
Alternatives Alternatives
============ ============
@ -148,15 +157,6 @@ a single list of core reviewers for the whole project. The advantage is a more
simple and straightforward governance process. The disadvantages are described simple and straightforward governance process. The disadvantages are described
in the problem description. in the problem description.
Split Fuel into sub-projects
----------------------------
An alternative way to address the problem of insufficiently granular ownership
is to split Fuel into several sub-projects with independent governance. The
advantage is not having to introduce the role of a component lead that doesn't
exist in other OpenStack projects. The disadvantage is even more governance
overhead, and having to involve the Technical Committee in cross-sub-project
dispute resolution.
Implementation Implementation
============== ==============
@ -164,9 +164,12 @@ Implementation
Author(s) Author(s)
--------- ---------
Primary author: mihgen (Mike Scherbakov) Primary author:
mihgen (Mike Scherbakov)
Other contributors: angdraug (Dmitry Borodaenko) Other contributors:
angdraug (Dmitry Borodaenko)
kozhukalov (Vladimir Kozhukalov)
Milestones Milestones
---------- ----------