Gentoo Archives: gentoo-dev

From: Tom Wijsman <TomWij@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: dropping redundant stable keywords
Date: Tue, 18 Feb 2014 21:10:43
Message-Id: 20140218221023.6f430c19@TOMWIJ-GENTOO
In Reply to: [gentoo-dev] Re: dropping redundant stable keywords by "Steven J. Long"
1 On Tue, 18 Feb 2014 18:31:28 +0000
2 "Steven J. Long" <slong@××××××××××××××××××.uk> wrote:
3
4 > On Fri, Feb 14, 2014 Tom Wijsman wrote:
5 > > On Thu, 13 Feb 2014 "Steven J. Long" wrote:
6 > >
7 > > > > > Much better for the arch in question to field the bug, than
8 > > > > > tell the user there is no problem, and we don't care. That
9 > > > > > way you can get the user involved in stabilisation and AT via
10 > > > > > that bug, instead of turning them away with priggishness.
11 > > > >
12 > > > > Problems should be visible instead of hidden, as well as
13 > > > > resolved. A move in work means a move in work, further
14 > > > > implications are yours...
15 > > >
16 > > > Very gnomic: nothing's being hidden in the above approach.
17 > >
18 > > Filing a bug but not telling the user about it is hiding the
19 > > problem.
20 >
21 > "The bug" in the above is a bug the user on the arch in question has
22 > filed, which would be duped to the stabilisation bug (for the arch if
23 > there's more than one) so the user a) knows there's a newer version,
24 > which they can try out and help stabilise, and b) isn't kicked back
25 > with a WONTFIX, when they could be put in touch with the AT instead.
26 >
27 > So the user filed the bug in the first place: by definition they know
28 > about it.
29
30 There are more users than the user that filed the bug; in order to
31 address all of them, and not just the user of the bug, other
32 forms of communication need to be taken to address those users. One of
33 such that came up is using the package.mask reason to do this.
34
35 > > > I can't make sense of the rest so I'll move on, noting only that
36 > > > it's up to the arch team, as to what _they_ decide to kick back to
37 > > > unstable.
38 > >
39 > > They need manpower to decide it, which they don't have.
40 >
41 > It's still no-one else's call, though given the approach it's easy
42 > enough to allow a further say 180 days after the "-* arch" marking,
43
44 As detailed before, -* has a different meaning defined by policy; if we
45 want to see that changed it should be brought up for a vote, otherwise
46 its usage in discussions like these seems to suggest to break an
47 existing policy. So, I read this as "arch" whenever it is brought up.
48
49 > before the maintainer is allowed to mark the package as a whole
50 > unstable on the arch in question, given no movement.
51
52 When the developer marks the package as "minorarch", it's already
53 unstable on the newer versions; thus I think I'm missing a particular
54 detail in your paragraph to understand what is meant here, unless you
55 mean that we keep track of this in a separate way.
56
57 > > > And that can work without a problem if we have a mechanism
58 > > > in place to relieve maintainers of those bugs.
59 > >
60 > > Such mechanism could be to assign those bug to the arch team, this
61 > > idea came up at FOSDEM; it won't solve the lack of manpower, but it
62 > > will at least relieve the maintainers and make the problem more
63 > > visible.
64 >
65 > Exactly. What the AT does with it is their problem: if they don't move
66 > after another 180 days, they can't complain, but there's at least a
67 > more formal process, and there's no row, nor even discussion needed.
68 > You had a chance to stabilise, we've waited, and you've still got the
69 > stable ebuild in your tree, but now any users on your arch are going
70 > to get redirected to you, so you can discuss moving the package
71 > forward or bumping it to unstable.
72
73 We've had discussion here and on IRC after the similar QA policy; it's
74 what put it in a state of discussing it again, which will happen
75 tomorrow evening during the Gentoo QA meeting.
76
77 > To me that makes the action something positive, rather than negative.
78 > Especially coupled with an indicator in the package manager output,
79 > similar to how unstable ebuilds are marked if you're running stable,
80 > or forced-rebuilds. That would spur more users to help, since they're
81 > using the package in question, and are on a slow arch.
82
83 +1, package.mask or so could serve well here.
84
85 > > > Personally I'd do it after 45 days to speed things up, and let the
86 > > > ATs concerned, take the bug as and when (eg turn the stabilisation
87 > > > into a tracker for the slow archs concerned, if there are
88 > > > multiple.)
89 > >
90 > > Since this is a soft measure I've seen a lot of people want the
91 > > time to be longer; if it still continues to be a problem, then
92 > > shortening it might be a solution but I think we'll want to avoid a
93 > > too hard approach for now. 45 days are over before you know it...
94 >
95 > No the whole point is that the slower archs are not losing a stable
96 > ebuild in their tree: so it's fine for the maintainer to wait a
97 > shorter time before marking it as no-longer-my-problem. It's not the
98 > same as dropping the ebuild altogether; it leaves the arch-tree
99 > intact, and still marks a new phase for interested users to
100 > collaborate around, while relieving the maintainer of the burden.
101 >
102 > And if desired, that can be seen as the start of a phase toward
103 > bumping it to unstable, but with more notice, and a defined process.
104
105 Ah, no-longer-my-problem; yeah, seems we're having a different timeout
106 in mind then. I'd still would like to see this rather as a last resort
107 solution ("it's been a long while now, ..."), rather than a short ("yes,
108 I can ditch it now, ...") solution for when it is really needed; as we
109 just want to relieve some lingering maintenance weight, while not
110 moving more weight than needed to the architecture teams.
111
112 > > The part about ATs taking the bug sounds like what came up at
113 > > FOSDEM. +1
114 >
115 > <snip>
116 > > > The wonderful thing about policy is that it reflects (or is
117 > > > supposed to) consensus opinion with light to contemporaneous
118 > > > circumstance. Since circumstances change, so too must policy be
119 > > > open to change or adaptation, in line with basic principles.
120 > >
121 > > In this case -* works fine for what it intends to work; changing the
122 > > policy to redefine it to fit another purpose, while no longer
123 > > reflecting its original purpose is what we should avoid at all cost.
124 >
125 > Utter nonsense. Back that up with some consequent to justify why we
126 > should "avoid it at all costs", bearing in mind the below.
127
128 Already did that in the other thread, let's not bring it up again; it
129 was shown that multiple words' meaning were bent to make it mean the
130 other thing that you want to use it for here, while that changes the
131 borders of its original meaning such that you can no longer it that way.
132
133 By all means, it is possible to change it with a vote; but just plain
134 out using it in a different way than how we defined it is inconsistent.
135
136 > > > So let's look at extending it, since there is *no* technical
137 > > > problem:
138 > >
139 > > You have colons after the above quoted sentence with nothing after
140 > > it.
141 > >
142 > > (An eye for an eye... :D)
143 >
144 > Don't be so facile: the proposed extended policy is what follows.
145
146 Exactly it does; so, let's avoid the use of that reply. :)
147
148 > > > 'The redundant -* keyword is a metadata marker.
149 > >
150 > > The keyword has a meaning, therefore it is not redundant.
151 >
152 > It is technically redundant, since the package manager does not infer
153 > any existing keywords, so there is nothing to strip. As a metadata
154 > marker, no ofc it's not redundant: but that's what I'm proposing to
155 > use.
156
157 It could be towards the package manager, like quite a few other things
158 (eg. the exact name of a license); that doesn't imply that it's
159 redundant in general, as they have their specific meaning.
160
161 > > > It is used to indicate, in line with the semantic of "strip all",
162 > > > that the ebuild in question can only be used for the specific
163 > > > archs noted for one of two reasons:
164 > > >
165 > > > 1) The package-maintainer has stabilised a newer version on at
166 > > > least one arch personally, the ATs for the archs listed have
167 > > > taken longer than XX days to test and stabilise, and the
168 > > > maintainer would otherwise drop the ebuild altogether.
169 > > >
170 > > > 2) The package version is not worth trying to test on unlisted
171 > > > archs.'
172 > >
173 > > (1) changes its meaning in a way that you can no longer interpret
174 > > the keyword solely as (2). The whole purpose of (2) is that you can
175 > > interpret it that you should not test it as it was found not to
176 > > work; (1) is different from that, as it means that there was no
177 > > manpower to test it. (1) would move ebuilds to -* and be
178 > > misinterpreted as (2).
179 >
180 > Nope: 1) implies 2) so any existing use of the marker solely in the
181 > context of 2) still works. It certainly is not worth testing an old
182 > ebuild that would have been dropped on an unlisted arch: whoever is
183 > looking at the ebuild, should instead use a newer version.
184
185 1) means a package is unstable (~), 2) means a package is unusable (-),
186 there is no hence no implication; even if there were, this discussion is
187 solely about dropping it from stable. -* does more than what is needed.
188
189 "arch minorarch" -> "minorarch" on the old version can suffice, with
190 "arch ~minorarch" on the newer version; then what is "-* minorarch"
191 needed for? What is its additional benefit over what I suggest here?
192
193 > > > The policy which flows from that is:
194 > > >
195 > > > 'In the first case, it is QA policy that a comment of the form:
196 > > > # STABLEREQ: https://bugs.gentoo.org/show_bug.cgi?id=NNNNNN
197 > > > is required on the line immediately above the KEYWORDS
198 > > > declaration.
199 > > >
200 > > > This is to aid both automated identification, and human
201 > > > collaboration.'
202 > > >
203 > > > (The latter explains why a URL, not a bug id, is required. We're
204 > > > trying to get end-users to help us, so let's make it easy for
205 > > > them.)
206 > > >
207 > > > I'd personally add:
208 > > > 'It is envisaged that the line will be added by an automated tool
209 > > > at some point.'
210 > > >
211 > > > ..as well as a requirement for a bug id in the second case, but I
212 > > > don't know it well enough; I'd certainly want some sort of
213 > > > tracking.
214 > >
215 > > This yields extra commits; comments in ebuilds are directed towards
216 > > maintainers, for users we should use another approach to contact
217 > > them.
218 >
219 > No it keeps all the useful info in one place: the ebuild, where it's
220 > easy to edit and see. The commit is already implicit in dropping the
221 > ebuild to "-* slower arch": all the policy does is require a link to
222 > the original stabilisation bug, which may be a tracker if multiple
223 > archs are involved. However none of that is the maintainer's concern:
224 > all they need do, when facing this rare situation, is change the
225 > keywords and add a link to the bug (commenting is SOP for most unusual
226 > situations in ebuilds), instead of dropping the arch's stable version.
227
228 It's an extra commit to add the comment prior to stabilization.
229
230 > The link is easy to extract for an automated external to show to the
231 > user, like the mangler in the above, or a porcelain layer, given an
232 > indicator from the mangler.
233
234 This can be implemented by checking Bugzilla; there's no need for a
235 comment, as that leaves room for missing comments misrepresenting that
236 there is no stabilization when there is in fact stabilization going on.
237
238 > It's also a helluva lot less work than package.mask, as well as
239 > keeping all the info in the ebuild, where it's easier to handle.
240
241 Adding a generic or specific text to package.mask can be scripted;
242 beyond that, it is usable. package.mask is easier for QA to handle;
243 given that it's a single file, instead of ebuilds across the tree.
244
245 > > > It's hardly an onerous requirement, and a small price to pay: if
246 > > > we have a policy for how a maintainer drops an ebuild from his
247 > > > queue due to it being stabilised, which we can trigger scripts
248 > > > from, we avoid the arguments every year or so, and stop archs from
249 > > > being borked. We can also speed it up, since we have a mechanism
250 > > > in-place to support it, as opposed to ad-hoc, flawed
251 > > > decision-making.
252 > > >
253 > > > The thing I think that's missing from this debate, is an
254 > > > acknowledgement, or an understanding, that arch-teams are all
255 > > > effectively working on their own variant of the shared Gentoo
256 > > > tree. (This includes the concept of upgrades working as smoothly
257 > > > as they do on other archs, at the PM level.) Similar to other
258 > > > portability efforts, the tree must support them in that, not make
259 > > > it harder.
260 > > >
261 > > > Especially not because another developer doesn't care about the
262 > > > arch in question. That's *natural*, but _cannot_ be cause for
263 > > > dropping stable ebuilds. The only issue is to take the bugs off
264 > > > their hands, and we can do that with a simple tweak in metadata,
265 > > > so ffs let's get on and do it.
266 > >
267 > > +1 on this thought.
268 >
269 > Well I wish you could see that steev's solution, with a bit of
270 > standard commenting, fulfils both your +1s
271
272 The +1 is just on the thought part, not the entire thing.
273
274 > and doesn't lead to broken arch-trees. It also doesn't require any
275 > communication with a non-responsive arch, and can form the basis of a
276 > much more useful mode of collaboration, from where I'm sitting.
277
278 It however leads to different things and requires different things; so,
279 there are trade-offs to be made. Some of the other solutions put
280 forward also make collaboration an option; even outside of all
281 solutions, collaboration by joining an arch team is already possible.
282
283 > Post-facto complaints about an upstream project decision to keep
284 > migration code, or about the anguish of seeing an older version
285 > stable on some arch you don't even care about (or you wouldn't be
286 > dropping their last stable version) are an order-of-magnitude less
287 > concerning. By all means address them (up to the project in the
288 > first case, adjust your script in the second) but let's at least
289 > admit they are less of a problem than this continual argument, and
290 > the consequent ill-feeling brought about by lack of a defined
291 > action to take.
292
293 Action by the QA team was taken last month, and tomorrow another could
294 be made; this thread is making progress, and participating therein is
295 part of a preparation for the meeting that will take place tomorrow.
296
297 > The issue about confusion with multiple archs has already been
298 > addressed by making the original stabilisation bug a tracker for
299 > the N slow archs, if there are more than one.
300 >
301 > Most of this can be automated, or is at least amenable to it. And
302 > that discussion is *far* more interesting than "you broke our arch"
303 > vs "so what, you're too slow".
304
305 --
306 With kind regards,
307
308 Tom Wijsman (TomWij)
309 Gentoo Developer
310
311 E-mail address : TomWij@g.o
312 GPG Public Key : 6D34E57D
313 GPG Fingerprint : C165 AF18 AB4C 400B C3D2 ABF0 95B2 1FCD 6D34 E57D

Replies

Subject Author
Re: [gentoo-dev] Re: dropping redundant stable keywords Ciaran McCreesh <ciaran.mccreesh@××××××××××.com>