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 |
> |