Gentoo Archives: gentoo-alt

From: Sam Pfeiffer <sammypfeiffer@×××××.com>
To: gentoo-alt@l.g.o
Subject: [gentoo-alt] Allow non-interactive bootstrap to be stopped at arbitrary stages
Date: Mon, 13 Jan 2020 09:03:19
Message-Id: CABVqfw85krRbAAsTyaE4Fj2Xz6eVw=fkqE+CAOGNSO9t-rGZRg@mail.gmail.com
1 Hello,
2
3 To ease automated building and debugging of the bootstrap of Gentoo Prefix
4 I would like to propose a patch to add the option to stop the
5 non-interactive bootstrap on specific stages of the bootstrap.
6
7 I'm currently doing this in my CI projects [1]
8 <https://github.com/awesomebytes/gentoo_prefix_ci>[2]
9 <https://github.com/awesomebytes/gentoo_prefix_ci_32b> and I'd love to have
10 this added upstream.
11
12 I propose a patch like this:
13 https://gist.github.com/awesomebytes/3468477c6c90fe3d985372d50aabba9f
14
15 Which is what I'm currently using. It just adds another optional parameter
16 to the commandline (a 3rd one) in non-interactive mode which you tell it
17 after which stage to stop (stage1, stage2, stage3).
18
19 I'm not the most versed person in bash, so maybe there is a more
20 conceptually beautiful way of doing this. My patch is just a proposal (that
21 has been tested and running).
22
23 This patch is useful because it allows:
24 1) Easier debugging by stages.
25 2) Allows to split the bootstrap job in parts in CI environments with time
26 limits on jobs to run (e.g. Azure Pipelines time limit is 6h*, and the
27 bootstrap takes in between 5h40-6h40 depending on random things like time
28 to download things, and load on the machine... or packages just taking
29 longer to build).
30
31 And this patch should not change anything to anyone else (AFAIK).
32
33 Thanks for your time and feedback!
34
35 P.S.: I'm used to the GitHub/GitLab workflow of having a graphical
36 interface to do a Pull Request... I don't know how to do this with
37 https://gitweb.gentoo.org/repo/proj/prefix.git/
38 If there is no way, aside of the goal of this email, I'd propose to have a
39 mirror in GitHub.
40
41 *If you are curious, Stage 1 takes 8min~, Stage 2 takes 29min~, Stage 3
42 takes 2h30min~, emerge system takes 2h35min~ on Azure Pipelines,
43 approximately.
44
45 [1] https://github.com/awesomebytes/gentoo_prefix_ci
46 [2] https://github.com/awesomebytes/gentoo_prefix_ci_32b
47
48 --
49
50 *Sammy Pfeiffer*
51 PhD Candidate at The Magic Lab within UTS.

Replies