Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev <gentoo-dev@l.g.o>
Subject: [gentoo-dev] Improving the support for minor arches and less common profiles in CI
Date: Sat, 06 Jan 2018 11:11:05
Message-Id: 1515237053.1272.27.camel@gentoo.org
1 Hi, everyone.
2
3 I think most of us agree that support for minor arches in Gentoo
4 is suboptimal, and that we've pretty much been focusing on avoiding
5 the problem than really solving it.
6
7
8 At this moment, we have 8 arches with stable profiles:
9 alpha amd64 arm hppa ia64 ppc ppc64 x86
10
11 We have 8 arches whose profiles are purely dev/exp:
12 arm64 m68k mips nios2 riscv s390 sh sparc
13
14 We also have dev/exp *-fbsd and prefix profiles.
15
16 Of those arches:
17
18 a. mips, *-fbsd and prefix use ~arch only,
19
20 b. arm64 and sparc have reasonably supported stable tree (the former
21 aiming to become stable profile, the latter recently lost the status),
22
23 c. other minor arches have stable keywords added haphazardly.
24
25
26 The main problems I see are:
27
28 1. The most of mainline tooling (repoman, CI, stable-bot) default to
29 ignoring non-stable profiles because of the inconsistencies
30 in dependency tree of those profiles. Sadly, this means that developers
31 keep making it worse by missing new breakages they're introducing. This
32 gives us an awful chicken-and-egg problem.
33
34 2. The meanings of 'dev' and 'exp' are really unclear to me. I'm not
35 really sure if anyone follows a really clear criteria in classifying
36 profiles to either.
37
38 3. We can't really expect to get all profiles of given type (dev or exp)
39 to start passing at the same time.
40
41
42 What I would really like to achieve is improvement of dependency tree
43 consistency across different profiles. Ideally, we'd check that on all
44 profiles, including dev and exp but realistically I don't think that
45 could happen.
46
47 The goal we've been originally pursuing was fixing depgraphs of
48 different arches (arm64, mips) to the point when it became correct
49 and marking them stable once that state was achieved. However, I'm not
50 sure if this is eventually going to fly because:
51
52 一. We don't really seem to be getting much closer, and as I mentioned
53 people keep committing new breakage.
54
55 二. I suppose marking mips stable would create some confusion resulting
56 in people trying to stabilize stuff.
57
58 三. This wouldn't help e.g. sparc which has recently lost stable status.
59 I'd still like to see it correct but I don't think the Council will
60 agree upon restoring the stable status without proper arch team backing
61 it.
62
63
64 So I'm thinking of an alternate idea: to start adding staging warnings
65 for additional profile class, combined with arch restriction. In other
66 words, change CI from:
67
68 -p stable
69
70 to:
71
72 -p stable,something -a alpha,amd64,...,mips,...
73
74 with a separate class for NonSolvableDeps in non-stable profiles (like
75 repoman's badindev/badinexp) that triggers only a staging-class warning.
76
77 However, this means that:
78
79 ১. We need to settle for either dev or exp being 'more' supported,
80 and drop all unsupported profiles to the other group.
81
82 ২. We need to fix the appropriate class of profiles for stable arches
83 (or move them to the other group).
84
85 ৩. The arches in question still need to generate reasonably low number
86 of warnings.
87
88
89 Your thoughts?
90
91 --
92 Best regards,
93 Michał Górny

Replies