Gentoo Archives: gentoo-dev

From: Tobias Klausmann <klausman@g.o>
To: gentoo-dev@l.g.o
Subject: Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan & schedule
Date: Thu, 09 Jul 2015 14:52:11
Message-Id: 20150709145156.GA20354@skade.schwarzvogel.de
In Reply to: Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan & schedule by Steev Klimaszewski
1 Hi!
2
3 On Thu, 09 Jul 2015, Steev Klimaszewski wrote:
4 > On Wed, 2015-07-08 at 21:11 +0200, Tobias Klausmann wrote:
5 > > The truly arch-dependent bugs are what wastes my time:
6 > >
7 > > For example:
8 > >
9 > > - dependencies not being keyworded for arch or ~arch but only
10 > > amd64/~amd64
11 > > - dependencies not even building on ~arch, but on ~amd64
12 > > - package assuming availability of gcc/ghc/Python-X.Y when
13 > > arch/~arch only has something for <Y or <X
14 > > - my favourite: assuming udev is at version X for arch/~arch when
15 > > it has been broken there for roughly twelve kernel versions due
16 > > to udev/systemd upstream not caring. The information is one
17 > > equery-y command line away, but no, let's file that bug.
18 >
19 > That's a failing of the arch team or the committer then - or whomever
20 > keyworded the package without testing the dependencies. That's why the
21 > keywording bugs happen when dependencies change - and yes, occasionally
22 > a dependency loses it's keywords and that may be where the issue comes
23 > from, I'm not sure. This used to be watched very closely, but I believe
24 > the tool being used broke at some point.
25 >
26 > What exactly do you mean, it's just one command line away but let's file
27 > the bug - yes a bug SHOULD be filed, so that the people know of the
28 > issue so it doesn't get repeated, over and over.
29
30 What I meant is when I get a stabilization bug for
31 cat-egory/foo-1.2.3 which depends on >=other-cat/bar-1.0.5. The
32 latter is amd64 but not alpha or ~alpha. And it, in turn, has yet
33 more deps in the same vein. Now I have several options:
34
35 1/ Pull in all dependencies and test them. This may mean I have
36 to let the deps soak in ~alpha for 30 days, leading the
37 original dev to complain that the arches are slow.
38 2/ Try and figure out if I can mask a USE flag on foo-1.2.3 that
39 avoids the dependency. If there isn't I can try and make one,
40 which leads into another hell of dep chasing for revdeps of
41 foo-1.2.3.
42 3/ Complain on the bug that the maintainer of foo-1.2.3 should
43 figure out the deptrees before CCing arches.
44 4/ Opt out of stabilization for foo-1.2.3
45
46 If it turns out that bar-1.0.5 or one of its deps breaks a
47 completely unrelated package, I get to revert all of this until a
48 fix is found. And then do it all over again.
49
50 What instead should happen:
51
52 The maintainer of cat-egory/foo sees that 1.2.3 has a new dep,
53 which is >=other-cat/bar-1.0.5. A quick check with equery* shows
54 that it isn't stable/keyworded for alpha and hppa.
55
56 Thus, the maintainer files a bug for bar-1.0.5 to be stable on
57 alpha and hppa, possibly/ideally checking with bar's maintainer.
58 The stabilization for foo-1.2.3 on amd64 can continue, just don't
59 CC alpha and hppa yet.
60
61 Once bar-1.0.5 is stable (or alpha/hppa have opted out), CC them
62 on the foo-1.2.3 bug.
63
64 *(An alternative is to add all the keywords you want and run
65 repoman full. Just don't accidentally commit that edit.)
66
67 The bad case (ignoring the non-amd64 deptree) is not the
68 majority, but it's a very frustrating and time consuming
69 experience for archtesters. Often, the deptrees for the minor
70 archs are broken in subtly different ways, resulting in the time
71 wasting to be multiplied.
72
73 Option #3 above I have shied away from, since it would feel sort
74 of aggressive, pedantic and picky when that is not really in my
75 nature. If everyone is okay(ish) with it, I'll start doing it.
76
77 > > Having every arch team chase the deps for every package is very,
78 > > very frustrating, since it is so trivial a problem. We need a
79 > > tool that answers the question: "I want to mov cat/pkg-1.2.3 to
80 > > stable for arches a, b and c, what do I need?" for _every
81 > > package_. Some groups seem to have tooling for this, but it is
82 > > far from easily (obviously?) available, so every team gets to
83 > > re-discover dependency hell. Ruby is especially bad since
84 > > FEATURES=test make the depgraph explode (and sometimes circular).
85 >
86 > The only fear I have about CI, is that we turn into every other distro
87 > out there where "it builds, ship it!" - I know I prefer to have our arm
88 > team actually test the packages more than just doing FEATURES=test
89 > (assuming the tests aren't broken on arm) emerge, although I know there
90 > are some people on the team who feel that it's too much to actually test
91 > all of the arm boards. For a long time, certain binary distros were
92 > compiling anything and everything, and if it built for other arches it
93 > was available. Even if there was no way it would possibly work on that
94 > arch.
95
96 We're already partway down that road of IC,SI. For Alpha, it's
97 not because we don't want to, but rather because we know that if
98 we do it 100% properly, we will quickly fall even further behind.
99 I guess we do speculative testing: If it compiles+tests, great.
100 If the package actually breaks, a user will surely tell us.
101
102
103 Yes, CI is nice to have if you have the hardware to do it. But if
104 parts of our workflow start depending on it, we will quickly lose
105 the minor archs.
106
107 Regards,
108 Tobias
109
110 --
111 prom_printf("No VAC. Get some bucks and buy a real computer.");
112 linux-2.6.19/arch/sparc/mm/sun4c.c

Replies