Gentoo Archives: gentoo-project

From: Alec Warner <antarus@g.o>
To: gentoo-project <gentoo-project@l.g.o>
Cc: qa <qa@g.o>, "Michał Górny" <mgorny@g.o>
Subject: Re: [gentoo-project] [PATCH] glep-0048: Provide clear rules for disciplinary actions
Date: Fri, 12 Apr 2019 15:30:43
Message-Id: CAAr7Pr9wokDd8r8FHmcaaZVk-=famgLd7JJckL-+tJgbT+1BRQ@mail.gmail.com
In Reply to: [gentoo-project] [PATCH] glep-0048: Provide clear rules for disciplinary actions by "Michał Górny"
1 Just as a frame, I'm not on QA.
2
3 On Fri, Apr 12, 2019 at 10:40 AM Michał Górny <mgorny@g.o> wrote:
4
5 > Update the wording of GLEP 48 to provide clear information on what kind
6 > of disciplinary actions QA can issue, and in what circumstances they can
7 > be exercised. Remove the unclear reference to ComRel that is either
8 > meaningless or violation of scope.
9 >
10
11 Is there a particular driver for this change? E.g. have you been
12 dissatisfied with the current procedure, or perhaps Comrel is not acting on
13 your referrals?
14
15 In general I perceive the QA organization as an educational / enabling
16 organization (it trains people and writes tools) and not as a
17 punishment-based organization (where it shames people for their mistakes
18 and removes commit access from people who make too many.) This isn't to say
19 there isn't room for removing access for committers who routinely make
20 mistakes, I just think it ends up supporting this underlying narrative
21 about the project that (and I'm framing this here) "Gentoo should be
22 smaller and only composed of elite committers who understand all the
23 complex stuff required to not break things." This type of change was
24 previously discussed on the project list.
25
26 If the goal is to move the project in that direction I'd rather see a
27 vision document or similar ratified by the council to support that
28 direction than this slow boiling of a frog.
29
30
31 >
32 > According to the old wording, QA could request 're-evaluating commit
33 > rights' from ComRel. This is very unclear, and has been a source of
34 > confusion more than once. Firstly, it is unclear whether ComRel merely
35 > serves as a body executing the QA team's decision, or whether it is
36 > supposed to make independent judgment (which would be outside its
37 > scope). Secondly, it suggests that the only disciplinary action
38 > possible would be 're-evaluating commits rights' which sounds like
39 > an euphemism for removing commit access permanently.
40 >
41 > The new wording aims to make things clear, and make QA disciplinary
42 > actions independent of ComRel. Explanation for the individual points
43 > follow.
44 >
45 > Firstly, it aims to clearly define the domain of QA actions, and set
46 > a better distinction between QA and ComRel. In this context, QA
47 > is concerned whenever the developer's action technically affects Gentoo,
48 > which includes breaking user systems, Infrastructure tooling, other
49 > packages, etc. ComRel on the other hand is concerned in actions having
50 > social consequences rather than technical.
51 >
52
53 Previous QA teams would often take unilateral action against individual
54 developers, often for problems that were poorly or under-documented[0]. The
55 infrastructure teams in the past had similar issues (e.g. removing commit
56 access of individual developers on a whim) and part of the reason that
57 Comrel is slower to act is to prevent this type of activity. Hence my
58 question above: Is Comrel not doing the right thing here? Why do we need to
59 delegate this ability directly with the QA team?
60
61 [0] This is again my thrust that QA is a enabling team, not a punishment
62 team. Tools to prevent commits that are bad. Tools to find bad commits
63 post-commit. Tools to roll-back or revert bad commits. More stuff like "two
64 branches of ::gentoo "master" and "ci" and maybe rsync / users should
65 consume the CI'd branch. I don't expect that all developers understand
66 everything.
67
68
69 >
70 > Secondly, it clearly defines the possible disciplinary actions as either
71 > temporary commit access ban, or (in case of repeated offenses) permanent
72 > removal of commit access.
73 >
74
75 This part seems fine, I think we should have a clearer idea of punishments.
76
77
78 >
79 > Thirdly, it removes the unnecessary involvement of ComRel, QA violations
80 > being outside of their scope of interest. Each case of QA violations
81 > is analyzed by QA team individually, and QA team exercises disciplinary
82 > actions independently. At the same time, appeal path via Council is
83 > defined.
84 >
85
86 I see the QA organization as having one primary mission "making sure that
87 Gentoo users can install and use Gentoo packages". I see the team
88 supporting that in four key areas:
89 - Education: this is content like the devmanual.
90 - Prevention: Tools like repoman (to prevent bad commits from being
91 committed) or a CI branch (to prevent users from seeing bad commits.)
92 - Mitigation: The CI branch again here, helps us quickly find bad commits,
93 and mitigates any bad commit because only the passing CI branch is made
94 available to users, so bad commits are lower impact.
95 - Punishment: If people don't use the tools, or consistently don't take
96 feedback, we should probably not trust them to commit.
97
98 I find punishment the least effective thing QA can do; the QA organization
99 is an *enabling* organization that enables people to be effective. Removing
100 commit access is not really enabling anyone and unlike focusing on the
101 other three areas (whose impact is multiplied by the number of
102 contributors) removing commit access only affects 1 person at a time.
103
104
105
106
107 > ---
108 > glep-0048.rst | 11 ++++++++---
109 > 1 file changed, 8 insertions(+), 3 deletions(-)
110 >
111 > diff --git a/glep-0048.rst b/glep-0048.rst
112 > index f9773c0..55a27a2 100644
113 > --- a/glep-0048.rst
114 > +++ b/glep-0048.rst
115 > @@ -76,9 +76,14 @@ tree policies are respected.
116 > made by the council.
117 > * Just because a particular QA violation has yet to cause an issue does
118 > not
119 > change the fact that it is still a QA violation.
120 > -* If a particular developer persistently causes breakage, the QA team
121 > - may request that Comrel re-evaluates that developer's commit rights.
122 > - Evidence of past breakages will be presented with this request to
123 > Comrel.
124 > +* If a particular developer persistently causes QA violations (actions
125 > that
126 > + negatively impact the behavior of Gentoo systems, work of other
127 > developers
128 > + or infrastructure facilities), the QA team may issue a temporary
129 > revocation
130 > + of developer's commit access (ban). In case of repeated offenses, the
131 > QA
132 > + team may issue a permanent removal of the commit access (retirement).
133 > All
134 > + the evidence of the violation, as well as ban lenght will be evaluated
135 > + by the QA team for each case individually. The disciplinary decisions
136 > made
137 > + by the QA team are subject to appeal via the council.
138 > * The QA team will maintain a list of current "QA Standards" with
139 > explanations
140 > as to why they are problems, and how to fix the problem. The list is
141 > not
142 > meant by any means to be a comprehensive document, but rather a dynamic
143 > --
144 > 2.21.0
145 >
146 >
147 >

Replies