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 |