Gentoo Archives: gentoo-dev

From: R0b0t1 <r030t1@×××××.com>
To: Benda Xu <heroxbd@g.o>
Cc: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: Prefix bootstrap script maintainability (Was: No more stable keywords for Games)
Date: Mon, 20 Nov 2017 04:47:42
Message-Id: CAAD4mYiG9FjkdRdzVT-=6McJX_EN6Fh_R-tDKryiSOF8vnvodw@mail.gmail.com
In Reply to: [gentoo-dev] Prefix bootstrap script maintainability (Was: No more stable keywords for Games) by Benda Xu
1 Hello friends!
2
3 On Sun, Nov 19, 2017 at 6:54 PM, Benda Xu <heroxbd@g.o> wrote:
4 > Greetings R0b0t1,
5 >
6 > R0b0t1 <r030t1@×××××.com> writes:
7 >
8 >> It is one thing to say that contributions to the main Portage tree
9 >> require some standards to be upheld, but these standards do not seem
10 >> to be applied consistently. For example, crossdev, genkernel, and the
11 >> bootstrap-prefix and bootstrap-rap scripts are more or less
12 >> unmaintainable disasters.
13 >> [...]
14 >> and the bootstrap scripts are poorly explained with no extant
15 >> documentation and a workflow that does not clearly fit into Gentoo (or
16 >> more properly Portage) development at large.
17 >
18 > As one of the maintainers of the bootstrap-prefix (and bootstrap-rap), I
19 > acknowledge that the script is a result of accumulated contributions
20 > from multiple people, with rounds of refactorizations in the past
21 > several years. But it is well understood and maintainable.
22 >
23 > I would like to remind you that, the script is a reflection of the
24 > instrinsic complexity to compile a workable Gentoo from zero, in a wild
25 > variety of environments from handhold embedded devices to top 10
26 > supercomputers, from GNU/Linux, MacOS to Solaris/OpenIndiana and Cygwin.
27 >
28
29 That is fine, but I am more talking about the burden of trying to
30 understand what is going on. Nowhere is there a simple list of steps
31 that the bootstrap scripts take. The code is sparsely commented and
32 intent is not readily inferred from context. Some of this is related
33 to the packages in question, and I can not expect the scripts to e.g.
34 summarize the autotools options passed to the respective software, but
35 justification for why what is taking place is taking place should have
36 been a priority.
37
38 The typical response of "read the code" (which I have read more than a
39 few places) indicates to me that someone does not value my time and
40 has not bothered to remember what they have done, or why. Besides the
41 insult to future contributors this train of thought reflects poorly on
42 the quality of the author's work and the esteem with which they hold
43 the fruits of their labor.
44
45 I feel this manifests as the original developers being unlikely to
46 contribute because they have lost track of the various interacting
47 components and would need to invest a substantial amount of time in
48 re-understanding their own work. There are other projects where I have
49 observed the main authors undertake what appear to be, at first
50 glance, very technical changes due to an offhand comment by a mailing
51 list user.
52
53 These projects all seem to have been well documented.
54
55 > Don't be pissed off if it couldn't be hacked in several hours to be
56 > ported to ppc64. That's life: anything worth doing will not be easy.
57 >
58
59 Understanding an existing codebase should not be a technical
60 challenge. I had to resort to reimplementing all of the steps myself,
61 in part to understand if they were done properly in the first place.
62
63 In the case of the bootstrap scripts, minor problems are very hard to
64 diagnose because of limited feedback given, and the difficulty of
65 integrating what feedback is available into the overall setup process.
66
67 > For the standards and documentation, yes, the recommended workflow had
68 > better be carved into stone. That's where things should be improved.
69 >
70
71 Unfortunately these are things that the original authors should
72 produce. Experience has shown me that documentation written by
73 ancillary contributors that do not have deep experience with the code
74 base is poor.
75
76 Respectfully,
77 R0b0t1

Replies