Gentoo Archives: gentoo-dev

From: Sergei Trofimovich <slyfox@g.o>
To: gentoo-dev@l.g.o, wg-stable@g.o, arch-leads@g.o, alpha@g.o, amd64@g.o, amd64-fbsd@g.o, arm@g.o, arm64@g.o, hppa@g.o, ia64@g.o, m68k@g.o, mips@g.o, ppc@g.o, ppc64@g.o, s390@g.o, sh@g.o, sparc@g.o, x86@g.o, x86-fbsd@g.o
Subject: [gentoo-dev] [RFC] Future of gentoo's stable and unstable trees: what are your thoughts?
Date: Mon, 24 Jul 2017 21:22:46
Message-Id: 20170724222223.6d359e47@sf
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

Replies