Gentoo Archives: gentoo-dev

From: Enrico Weigelt <weigelt@×××××.de>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: aging ebuilds with unstable keywords - how can we help?
Date: Thu, 27 Jul 2006 16:13:52
Message-Id: 20060727160955.GA4284@nibiru.local
In Reply to: Re: [gentoo-dev] Re: aging ebuilds with unstable keywords - how can we help? by Chris Gianelloni
1 * Chris Gianelloni <wolf31o2@g.o> schrieb:
2
3 <snip>
4
5 > > 1) thousands of packages will never be marked stable
6 >
7 > Honestly, they shouldn't be stable.
8
9 hmm, maybe we should have different groups of ports (*1) for
10
11 a) quite stable: no bugs yet and enough votes)
12 b) *proven* to be stable: has passed the whole bunch of qm tests.
13
14 The quite stable category could be used for "normal" packages which
15 are used in production but are not very critical. Maybe games and
16 seldomly used stuff can be taken from here.
17
18 Critical things (ie. base system, toolchain, critical apps) should
19 only be taken from the proven/mature category. Maybe we could maintain
20 several profiles which does the common masking.
21
22 I'm not quite familar w/ overlays yet, but it seems wise to me
23 to maintain overlays for several groups of b) ports. Individual
24 overlays may have their own policies. For example one for critical
25 server systems would require absolutely reliable, automatic remote
26 updates, security fixes fast in but enhancements lazy, binary
27 compatibility, etc.
28
29 > In fact, likely, many shouldn't be in the tree. We have way too many
30 > packages that are used solely by a small group of people sitting around
31 > the tree. These would be better served in official overlays, where
32 > they can be maintained by the interested parties (including users),
33 > rather than in the tree.
34
35 Those overlays seem good, if they represent an entire subtree
36 (aka distinct from the main tree). For example there could be an
37 KDE/Qt overlay, which contains the whole KDE stuff. People not
38 interested in any of KDE (like me) don't need it. This would make
39 syncing less resource intensive.
40
41 But: please let's call them *Subtrees*.
42
43 > > 2) Everyone running stable who wants some recent packages ends up with
44 > > /etc/portage/package.keywords with hundreds of entries
45 >
46 > People don't seem to understand that you cannot have your cake and eat
47 > it, too. I have no sympathy for these people.
48 >
49 > If you want *stable* then you're going to have to wait until the package
50 > has passed QA and the bugs have been resolved. If you want *new* then
51 > you simply have to deal with the bugs.
52
53 Well, as I said, there're different views of "stable".
54 One means "it is working", others mean "it has to be absolutely robust".
55 Therefore we should differenciate between "stable" and "mature".
56
57 For example bugzilla-2.22 (which is still masked ~x86 :():
58
59 I needed 2.22 for postgresql. This requires 2.22, which is ~x86,
60 so I had to add it to package.keywords. It also requires DBD::Pg,
61 also masked ~x86, also added to package.keywords.
62 Fine so far, as long as I don't have to do it on many packages.
63
64
65 Maybe we could handle the two cases installing vs. updating different.
66
67 Again my bugzilla example: I installed bugzilla-2.22 and DBD::Pg,
68 (both still masked ~x86). At this point I tried something new.
69 Bugzilla + DBD::Pg work for me now, evrything's fine.
70
71 Now it comes to an update. We've got a new Bugzilla version, which
72 is considered at the same stability level as my current 2.22.
73 I don't see any need for update, since I'm happy w/ current one.
74 So emerge should leave it untouched. Some day we'll have an new
75 version approved to be more stable than current or fixes some bugs.
76 Now emerge should upgrade, but only to the point where it gets
77 more stable.
78
79 BTW: sometimes it will be good to maintain different branches,
80 ie. there could come an quality enhanced 2.22.1 parallel to an
81 not yet proven 2.23 from upstream. While 2.23 will bring new
82 features, but is not yet properly tested, the 2.22.1 will only
83 have - very carefully checked - bugfixes. This case should also
84 be coped here.
85
86 <snip>
87
88 > People seem to think that there's some magical solution to this. There
89 > is no solution other than more people actually *solving* the problems
90 > that keep packages from making it to stable. The packages that are
91 > complained about the most are invariably large sets of packages, like
92 > GNOME or KDE, that have hundreds of dependencies and take quite some
93 > time to get into a condition that can be considered "stable" at all.
94 >
95 > If you want things to make it to stable faster, then start supplying
96 > patches.
97
98 ACK, of course.
99 Maybe we need some system to get users and latent contributors more
100 informed about things to do. I imagine something which directly
101 utilizes portage db (installed packages) to query for information.
102
103 Ie:
104
105 box:/ # equery-2do world
106 [www-apps/bugilla-2.22 ~x86] (installed: 2.22 +postgres ...)
107 * solve bug 12345
108 * test seamless upgrading from 2.20.2
109 ...
110 [knollo/test-1.23 ~x86] (installed 1.20)
111 * solve bug 1222
112 * try out new +postgres
113 ...
114
115 <snip>
116
117 > > 4) The user experience sucks - see the forums/wiki... "to install
118 > > this great sw you need the latest version of x, which depends on y,z,
119 > > so copy paste this huge block in to /etc/portage/package.keywords."...
120 > > then 2 weeks later some depend changes, and suddenly emerge -u world
121 > > no longer works, and user has more problems to solve.
122 >
123 > Honestly, the number of people out there giving shit advice is part of
124 > the problem. Rather than telling people to do this sort of thing, a
125 > better solution would be to tell people how they can *help* instead of
126 > how they can bypass the system, which ends up with clueless users filing
127 > more bugs, which delays the stabilization longer.
128
129 ACK. It's quite the same problem as many many packages (upstream) in
130 the OSS world have - they try to work around bugs in imported packages,
131 sometimes even ship their own branch of them (ie. apache -> expat)
132 instead of simply fixing the problem on the source. And this then
133 ends up in thinkgs like the whole autotools hell.
134 That's why I started my OSS-QM project, I had announced some weeks ago.
135
136 <snip>
137 > Every user that someone knowledgeable gets to use something they don't
138 > understand, is a potential bug report slowing stabilization even more.
139
140 At least these bug reports should contain the user's keywording info.
141 Ie. if the bug applies to an masked version, there should be an tag,
142 so the devs can easily filter on that. Maybe one's only fixing bugs
143 in unmasked packages and keeps things stable, another one then works
144 on stabelizing an still masked package.
145
146 BTW: is there any console tool for reporting bugs w/ all necessary
147 information quickly ?
148
149 Ie. if I found an bug in my current bugzilla, I simply wan to call
150 it with the package name - the tool gathers all necessary information
151 (ie. looks for the installed version, including masks, useflags, etc)
152 and asks a few questions.
153
154 > > The testing is supposed to be for the ebuild, not the package itself,
155 > > so there's not much point in holding back packages with simple ebuilds
156 > > from being stabilised. And the testing process isn't that extensive
157 > > anyway - all it ensures is that the package builds and can be run on
158 > > one particular arch testers system. No disrespect to the testers, but
159 > > they can't be experts in every particular piece of software. How much
160 > > code coverage does a typical ebuild really get when being tested?
161 >
162 > First off, we have a level of expectation of stability to maintain. If
163 > all packages were done "right" then 90% of the ~arch packages in the
164 > tree would be under package.mask, rather than ~arch. Only packages in
165 > ~arch would be ones with no bugs open, to test the ebuild, so that they
166 > can become stable. As we all know, this isn't the case. Developers all
167 > over the place, including myself, have put in tons of packages that
168 > aren't necessarily perfectly stable themselves. We do this because our
169 > users demand it. We have reached a critical mass of users, where no
170 > matter what we do, somebody is going to bitch and piss and moan because
171 > we don't do things the way they would like. There's nothing that we can
172 > do about this except decide collectively what the best course of action
173 > for our users would be and try to make things as high-quality as
174 > possible.
175
176 hmm, social pressure is a big problem here. The mass of people who
177 maybe are happy with semi-stable packages hurt those few who need
178 critical stability.
179
180 I tend to like the idea of mission-critical overlays more and more.
181
182 > Automatic stabilization is one of those things that would cause our
183 > quality to go to hell. Another thing is this. If you don't like it,
184 > fork. You've got the code. You're *more than welcome* to go around
185 > making your own overlay/tree and marking whatever rubbish you feel like
186 > as stable. There's *nobody* stopping you from doing so. However, many
187
188 I just read over the discussion very quickly, but isn't this exactly
189 what Sunrise should be for ?
190
191 <snip>
192
193 > Another problem is that we don't *know* what is being run by our users.
194
195 hmm, why not creating an database for this ?
196 Users are then encouraged to run an tool which regularily posts the
197 interesting parts of the emerge database (package+version+useflags+
198 keywords) and some system information (CFLAGS, hardware data, ...)
199 into the database. Once we've reached an critical mass, we've got
200 some usable statistic information. So we could also see, what should
201 not be kicked off the tree (ie. someone's still using old packages, etc).
202 We simply should tell people to use this tool if they like to get their
203 systems supported.
204
205 <snip>
206 > out into overlays. I wouldn't mind seeing the tree completely split
207 > into the "ricer" and "stable" camps. Let's call them "Gentoo
208 > Enterprise" and "Gentoo X-Treme UberEdition" just to keep them
209 > separate...
210
211 So like other distros like debian do with there "testing" vs.
212 "stable" branches ?
213 hmm, would be easier to maintain, but mixing would be hard for users.
214
215 <snip>
216
217 > Seriously, folks. If you think that packages should be available
218 > faster, run ~arch. Test the packages. Report successes/failures to the
219 > maintainers. File stabilization bugs if your favorite package hasn't
220 > had another bug in 30 days and you've been using it. Basically, help
221
222 maybe this could be done (partial) automatically:
223
224 + an tool checks the emerge db for masked packages which are older
225 than 30 days and asks the user if he likes to give comments and
226 if he likes to see it stabelized.
227
228
229 BTW: is there an quick way for checking if some package in an specific
230 version has some bugs ? Is there a fixed syntax for such bug reports
231 where we could let the machine filter on ?
232
233
234
235 cu
236
237 *1: port := package+version
238
239 --
240 ---------------------------------------------------------------------
241 Enrico Weigelt == metux IT service - http://www.metux.de/
242 ---------------------------------------------------------------------
243 Please visit the OpenSource QM Taskforce:
244 http://wiki.metux.de/public/OpenSource_QM_Taskforce
245 Patches / Fixes for a lot dozens of packages in dozens of versions:
246 http://patches.metux.de/
247 ---------------------------------------------------------------------
248 --
249 gentoo-dev@g.o mailing list

Replies