1 |
On Fri, 2019-04-12 at 11:30 -0400, Alec Warner wrote: |
2 |
> Just as a frame, I'm not on QA. |
3 |
> |
4 |
> On Fri, Apr 12, 2019 at 10:40 AM Michał Górny <mgorny@g.o> wrote: |
5 |
> |
6 |
> > Update the wording of GLEP 48 to provide clear information on what kind |
7 |
> > of disciplinary actions QA can issue, and in what circumstances they can |
8 |
> > be exercised. Remove the unclear reference to ComRel that is either |
9 |
> > meaningless or violation of scope. |
10 |
> > |
11 |
> |
12 |
> Is there a particular driver for this change? E.g. have you been |
13 |
> dissatisfied with the current procedure, or perhaps Comrel is not acting on |
14 |
> your referrals? |
15 |
|
16 |
Yes, I am dissatisfied. I am especially dissatisfied by the absurd |
17 |
bureaucracy and unclear jurisdiction. I've seen QA claiming we don't |
18 |
have authority and sending me to ComRel, and being sent back to QA |
19 |
because 'it's QA business'. |
20 |
|
21 |
Furthermore, even if we can get this bureaucracy to work, we end up with |
22 |
absurd delays because of two teams taking vote on the same issue |
23 |
in series. Do you really think it's good to ban someone *now* because |
24 |
he did something two weeks earlier? |
25 |
|
26 |
> In general I perceive the QA organization as an educational / enabling |
27 |
> organization (it trains people and writes tools) and not as a |
28 |
> punishment-based organization (where it shames people for their mistakes |
29 |
> and removes commit access from people who make too many.) This isn't to say |
30 |
> there isn't room for removing access for committers who routinely make |
31 |
> mistakes, I just think it ends up supporting this underlying narrative |
32 |
> about the project that (and I'm framing this here) "Gentoo should be |
33 |
> smaller and only composed of elite committers who understand all the |
34 |
> complex stuff required to not break things." This type of change was |
35 |
> previously discussed on the project list. |
36 |
|
37 |
I think you're insulting QA's competence here. The goal is not to ban |
38 |
people for making mistakes. The goal is to be able to actually act when |
39 |
all less invasive measures fail. |
40 |
|
41 |
> > According to the old wording, QA could request 're-evaluating commit |
42 |
> > rights' from ComRel. This is very unclear, and has been a source of |
43 |
> > confusion more than once. Firstly, it is unclear whether ComRel merely |
44 |
> > serves as a body executing the QA team's decision, or whether it is |
45 |
> > supposed to make independent judgment (which would be outside its |
46 |
> > scope). Secondly, it suggests that the only disciplinary action |
47 |
> > possible would be 're-evaluating commits rights' which sounds like |
48 |
> > an euphemism for removing commit access permanently. |
49 |
> > |
50 |
> > The new wording aims to make things clear, and make QA disciplinary |
51 |
> > actions independent of ComRel. Explanation for the individual points |
52 |
> > follow. |
53 |
> > |
54 |
> > Firstly, it aims to clearly define the domain of QA actions, and set |
55 |
> > a better distinction between QA and ComRel. In this context, QA |
56 |
> > is concerned whenever the developer's action technically affects Gentoo, |
57 |
> > which includes breaking user systems, Infrastructure tooling, other |
58 |
> > packages, etc. ComRel on the other hand is concerned in actions having |
59 |
> > social consequences rather than technical. |
60 |
> > |
61 |
> |
62 |
> Previous QA teams would often take unilateral action against individual |
63 |
> developers, often for problems that were poorly or under-documented[0]. The |
64 |
> infrastructure teams in the past had similar issues (e.g. removing commit |
65 |
> access of individual developers on a whim) and part of the reason that |
66 |
> Comrel is slower to act is to prevent this type of activity. Hence my |
67 |
> question above: Is Comrel not doing the right thing here? Why do we need to |
68 |
> delegate this ability directly with the QA team? |
69 |
|
70 |
This sounds like we're creating unjustified bureaucracy just because we |
71 |
had some social problem with some people in the past. Why do you |
72 |
presume that ComRel will never abuse its power, and at the same time |
73 |
presume QA will kick people 'on a whim'? |
74 |
|
75 |
I'm not sure if I'm supposed to answer the same question twice. |
76 |
The point is, in my opinion the current procedure is unjustified |
77 |
and there is a simpler procedure that should work here. |
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 |
I agree. However, there are valid cases when the three first areas just |
106 |
don't solve the problem. We can educate, we can put a lot of effort |
107 |
into making things more 'fool-proof' but in the end, it doesn't stop |
108 |
developers from breaking stuff. Or turns Gentoo into a unmaintainable |
109 |
mess where every developer suffers because of few making mistakes. |
110 |
|
111 |
The point is, that if a developer keeps breaking stuff and doesn't |
112 |
listen to reminders to be more careful, there is a point when QA should |
113 |
be able to issue a ban to make the developer realize he can't go on like |
114 |
this. |
115 |
|
116 |
-- |
117 |
Best regards, |
118 |
Michał Górny |