1 |
TL;DR;TL;DR: |
2 |
------------ |
3 |
|
4 |
This email seeks for one step towards less toil tied to gentoo's |
5 |
keywording/stabilization process. I've CCed a few groups who |
6 |
might be interested in making this area better: |
7 |
|
8 |
- gentoo-dev@ as it affects most devs (and non-devs!) |
9 |
- wg-stable@ as it overlaps quite a bit with efforts staged on STABLEREQ |
10 |
(should I join? :) |
11 |
- arch-leads@ as it directly helps (or breaks everything for) arch teams |
12 |
- all individual arches for wider visibility |
13 |
|
14 |
TL;DR |
15 |
----- |
16 |
|
17 |
I see the problem of lagging stable and unstable trees as: |
18 |
|
19 |
1. lack of automation |
20 |
2. lack of manpower |
21 |
|
22 |
The PROPOSAL to solve the '1. automation' part is to draft |
23 |
a new GLEP. If there is any interest (I assume there is!) I'll start one. |
24 |
Let's call that fufure 'life of KEYWORDS'. It will cover: |
25 |
|
26 |
- Update on GLEP-40 ("x86 stabilization can do only x86@ team") |
27 |
to allow package maintainers to do ARCH=x86 stabilization. |
28 |
It will be an arch-agnostic way: each arch will have minimal requirements |
29 |
to setup environment suitable for stabilization and keywording: |
30 |
CFLAGS to have, hardware required, whatever else is practical. |
31 |
- Formalize list of stable arches as such (will be covered by |
32 |
'arches.desc' GLEP) |
33 |
- Formalize what is a "stable arch". In short: |
34 |
- arch is marked as such in 'arches.desc' |
35 |
- performs most of STABLEREQ/KEYWORDREQ or gives rationale |
36 |
why progress can't be easily done before 90-days timeout |
37 |
- Formalize and automate process of dropping keywords for timed out |
38 |
STABLEREQ/KEYWORDREQ requests. |
39 |
- Automate process of restoring dropped KEYWORDS due to bumps |
40 |
adding new unkeyworded dependencies. repoman already complains |
41 |
about those. What is left is to grab them in batches time to time |
42 |
and handle those as if those were KEYWORDREQ. |
43 |
- File more automated STABLEREQs to rely less on lazy maintainers |
44 |
(I am example of lazy maintainer not siling STABLEREQs enough). |
45 |
- Formalize which STABLEREQ/KEYWORDREQ can be done automatically |
46 |
by arch teams (or maybe anyone else having the hardware!). |
47 |
In short: anything not marked as "Runtime testing required" |
48 |
on bugzilla and not having any blocker bugs. |
49 |
|
50 |
The proposal to solve the '2. manpower' part is: |
51 |
- Write more docs and make stabilisation process easier for everyone. |
52 |
|
53 |
Important detail: the list is not in set in stone but rather a guideline |
54 |
of things to cover. |
55 |
|
56 |
Please feel free to propose other topics, questions, concerns, likes or |
57 |
any other actionable feedback! |
58 |
|
59 |
Story mode |
60 |
---------- |
61 |
|
62 |
Hi all! |
63 |
|
64 |
As you might suspect arch testing (an important process part of |
65 |
gentoo's health). Recently arch testing became a point of contentions |
66 |
among gentoo developers. |
67 |
|
68 |
The non-exhaustive list of complaints is: |
69 |
|
70 |
- Minor (usually understaffed) arch ${A} is slow and does not process |
71 |
STABLEREQ/KEYWORDREQ packages for many months. Lag forces maintainers |
72 |
to keep more old versions in the tree prohibiting removal of not |
73 |
really-maintained packages. |
74 |
|
75 |
In theory policy allows dropping stable keywords from such packages |
76 |
but in practice people frequently do not do it because it's a large |
77 |
and tedious tree-wide change. |
78 |
|
79 |
- Packages on major arch (amd64 or x86) are not stabilized frequently |
80 |
enough. Packages fall through the cracks in bugzilla, STABLEREQs don't |
81 |
get filed by maintainers. |
82 |
|
83 |
- <Add your problem here so we can understand and analyze it better> |
84 |
|
85 |
What are the actual problems? |
86 |
----------------------------- |
87 |
|
88 |
- Arch testing is complicated, repetitive and (somethat) unrewarding. |
89 |
|
90 |
People only notice when things don't work. |
91 |
|
92 |
- Arch testing is complicated: each architecture (or OS) has it's own |
93 |
quirks. |
94 |
|
95 |
It's hard for a developer to join empty arch team as documentation |
96 |
on specifics is frequently lacking. |
97 |
|
98 |
Some example questions could arise: |
99 |
|
100 |
- When keywording for ARCH=ppc64 should we test on both powerpc64 and |
101 |
powerpc64le or only one of them? |
102 |
|
103 |
- Does -Wl,--as-needed work on ia64? |
104 |
|
105 |
- There seem to be a little of coordination between arch teams which |
106 |
tools to use to handle stabilization pipeline. |
107 |
|
108 |
Some examples: |
109 |
|
110 |
- Q: How to grab a list for keywording? |
111 |
|
112 |
A: use 'getatoms.py' from https://wiki.gentoo.org/wiki/Package_testing#Tools |
113 |
but there is a few caveats. |
114 |
|
115 |
- Q: How to keyword a package before stabilization? |
116 |
|
117 |
A: $ ekeyword ~ia64 <a long-list-of-packages> |
118 |
|
119 |
Caveat: can easily drop a keyword from ia64 down to ~ia64 for a |
120 |
package or two causing tree breakage. |
121 |
|
122 |
- Q: How to mark a package as explicitly not working or an ${arch}? |
123 |
|
124 |
A: Use KEYWORDS="-${arch}" but bots and ekeyword ignore it. |
125 |
|
126 |
- Q: How to mark a single package version as broken for a particular |
127 |
arch? |
128 |
|
129 |
- Q: What is the format of commit message for arch commit? Should |
130 |
package version be there? Should it be one commit per package? |
131 |
Per bug? Per arch? |
132 |
|
133 |
A: Everyone does it their own way. |
134 |
|
135 |
What can we do about it? |
136 |
------------------------ |
137 |
|
138 |
The short answer is: we need more automation and more manpower. |
139 |
|
140 |
Both are related: in an ideal world robots would do all package testing |
141 |
for us. People would only need to add new packages into system. |
142 |
|
143 |
More detailed plan (actions and changes) |
144 |
---------------------------------------- |
145 |
|
146 |
The plan is to get feedback from gentoo community and form a new |
147 |
GLEP that will supersede GLEP-40. |
148 |
|
149 |
We will need input from many active members: arch teams, wg-stable team |
150 |
and gentoo devs. |
151 |
|
152 |
The questions that will be covered in the new GLEP: |
153 |
|
154 |
1. Q: What is a supported stable arch? |
155 |
|
156 |
A: - Arch is marked 'stable' in 'profiles.desc' (and upcoming |
157 |
'arches.desc') |
158 |
- Arch that has at least one team member willing to do |
159 |
STABLEREQ/KEYWORDREQ processing |
160 |
- The STABLEREQ/KEYWORDREQ request timeout is 90 days |
161 |
|
162 |
After timeout expires all keywords for requested package |
163 |
will be demoted. To avoid tedious manual de-keywording we |
164 |
will need tooling for that. |
165 |
|
166 |
2. Q: How to make arch testing faster and easier? |
167 |
|
168 |
A: - KEYWORDREQ/STABLEREQ bugs not marked as "runtime testing |
169 |
required" will be automatically tested and keyworded. |
170 |
|
171 |
[handwave] automated tinderbox setup would help a lot |
172 |
to now upfront what fails to built, fails tests. |
173 |
|
174 |
3. Q: How to programmatically get "readiness" status for a particular |
175 |
package? Say, how many STABLE-blocking bugs the package has? |
176 |
|
177 |
A: Suggestions welcome! Maybe add "package list" field for bugs? |
178 |
|
179 |
4. Q: How to push more packages into STABLE? |
180 |
|
181 |
A: File automatic STABLEREQ bugs more aggressively if no known bugs |
182 |
exist for a package version. The rough workflow is the following: |
183 |
|
184 |
- Grab a list of candidates for stabilization (will need |
185 |
additional tooling) |
186 |
- File STABLEREQ against maintainer only first. |
187 |
- Maintainer will have a 2-week timeout to either proceed with |
188 |
request: |
189 |
- add "runtime testing required fields", CC relevant arches to |
190 |
start stabilization |
191 |
- or set blocking bugs against STABLEREQ to stop stabilization |
192 |
- After 2-week timeout tooling automatically CCes arches and |
193 |
stabilization happens (ideally with minimal manual work) |
194 |
- Profit! |
195 |
|
196 |
5. Q: <you questions you always wanted to ask> |
197 |
|
198 |
What do you think of all that? |
199 |
============================== |
200 |
|
201 |
Can this proposal make a difference and make gentoo better and easier to |
202 |
work with? |
203 |
|
204 |
Does it try to attack the right thing? |
205 |
|
206 |
Does it completely miss the point? |
207 |
|
208 |
Does it sound fun? |
209 |
|
210 |
Please do share your thoughts! |
211 |
|
212 |
Thank you! |
213 |
|
214 |
-- |
215 |
|
216 |
Sergei |