Gentoo Archives: gentoo-alt

From: Sam Pfeiffer <sammypfeiffer@×××××.com>
To: gentoo-alt@l.g.o
Subject: Re: [gentoo-alt] Allow non-interactive bootstrap to be stopped at arbitrary stages
Date: Thu, 16 Jan 2020 02:42:26
Message-Id: CABVqfw_A+FJ5hWNcUKz1APT8y9VVBBbF4vhbysn+28JX93PLSQ@mail.gmail.com
In Reply to: Re: [gentoo-alt] Allow non-interactive bootstrap to be stopped at arbitrary stages by Benda Xu
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.

Replies

Subject Author
Re: [gentoo-alt] Allow non-interactive bootstrap to be stopped at arbitrary stages Sam Pfeiffer <sammypfeiffer@×××××.com>