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 |