1 |
Hi Benda, |
2 |
|
3 |
Thanks for your reply. |
4 |
|
5 |
On Thu, 16 Jan 2020 at 13:01, Benda Xu <heroxbd@g.o> wrote: |
6 |
|
7 |
> Hi Sam, |
8 |
> |
9 |
> Sam Pfeiffer <sammypfeiffer@×××××.com> writes: |
10 |
> |
11 |
> > To ease automated building and debugging of the bootstrap of Gentoo |
12 |
> > Prefix I would like to propose a patch to add the option to stop the |
13 |
> > non-interactive bootstrap on specific stages of the bootstrap. |
14 |
> > |
15 |
> > I'm currently doing this in my CI projects [1][2] and I'd love to have |
16 |
> > this added upstream. |
17 |
> > |
18 |
> > I propose a patch like this: |
19 |
> >https://gist.github.com/awesomebytes/3468477c6c90fe3d985372d50aabba9f |
20 |
> > |
21 |
> > Which is what I'm currently using. It just adds another optional |
22 |
> >parameter to the commandline (a 3rd one) in non-interactive mode which |
23 |
> >you tell it after which stage to stop (stage1, stage2, stage3). |
24 |
> |
25 |
> > I'm not the most versed person in bash, so maybe there is a more |
26 |
> > conceptually beautiful way of doing this. My patch is just a proposal |
27 |
> > (that has been tested and running). |
28 |
> > |
29 |
> > This patch is useful because it allows: |
30 |
> > 1) Easier debugging by stages. |
31 |
> |
32 |
> > 2) Allows to split the bootstrap job in parts in CI environments with |
33 |
> > time limits on jobs to run (e.g. Azure Pipelines time limit is 6h*, |
34 |
> > and the bootstrap takes in between 5h40-6h40 depending on random |
35 |
> > things like time to download things, and load on the machine... or |
36 |
> > packages just taking longer to build). |
37 |
> > |
38 |
> > And this patch should not change anything to anyone else (AFAIK). |
39 |
> |
40 |
> Are you aware that in bootstrap-prefix.sh you can specify the stage you |
41 |
> are after? e.g. |
42 |
> |
43 |
> https://wiki.gentoo.org/wiki/Project:Prefix/Manual_Bootstrap#Stage_1 |
44 |
> |
45 |
> The text above that could be outdated, but PATH exports and stage1~3 are |
46 |
> correct. |
47 |
> |
48 |
I'm aware, but the behaviour (relating to environment variables and |
49 |
choosing CPU numbers) differs from the |
50 |
noninteractive argument. I'd like to keep the CI environment as close as a |
51 |
user executing ./bootstrap-prefix.sh EPREFIX as possible. |
52 |
That's why I'm proposing this addition. Another approach could be modifying |
53 |
the current argument to do the same than the noninteractive one. |
54 |
But that may break the workflow of someone, and I don't want that. |
55 |
|
56 |
|
57 |
> |
58 |
> > Thanks for your time and feedback! |
59 |
> > |
60 |
> > P.S.: I'm used to the GitHub/GitLab workflow of having a graphical |
61 |
> > interface to do a Pull Request... I don't know how to do this with |
62 |
> > https://gitweb.gentoo.org/repo/proj/prefix.git/ If there is no way, |
63 |
> > aside of the goal of this email, I'd propose to have a mirror in |
64 |
> > GitHub. |
65 |
> |
66 |
> Yes, that's a good to have for me, but not in high priority. |
67 |
> |
68 |
> > *If you are curious, Stage 1 takes 8min~, Stage 2 takes 29min~, Stage |
69 |
> > 3 takes 2h30min~, emerge system takes 2h35min~ on Azure Pipelines, |
70 |
> > approximately. |
71 |
> |
72 |
> Thank you so much for all your work! That's extremely helpful to keep |
73 |
> the quality of Prefix codebase. |
74 |
> |
75 |
> > [1] https://github.com/awesomebytes/gentoo_prefix_ci |
76 |
> > [2] https://github.com/awesomebytes/gentoo_prefix_ci_32b |
77 |
> |
78 |
> Yours, |
79 |
> Benda |
80 |
> |
81 |
> |
82 |
|
83 |
-- |
84 |
|
85 |
*Sammy Pfeiffer* |
86 |
PhD Candidate at The Magic Lab within UTS. |