New GSoC Proposal: The goal of this proposal is to break the dependency that catalyst has on the host environment and work towards producing hermetic build outputs. Today by default catalyst uses a number of features of the host to influence its builds and this leads to host changes having unexpected impacts on build outputs. (a) Come up with a design to isolate builds from the host. This might be VMs (imagine starting from some image, booting it, and then doing the build there. It could also be container technology (imagine using a tiny gentoo container to start that just has a stage3 + catalyst code; and we build there.) Estimate: 40 hours. (b) Evaluate the technology choices (VMs, containers, podman, systemd-nspawn, docker, etc.) What are the pros and cons of each? What other ideas are there? Estimate: 20 hours. (c) Pick one of the items in (b) and extend catalyst to orchestrate builds using that technology. Estimate: ?? hours. (d) Release catalyst with changes in C. Estimate: 2 hours. (e) Extend Gentoo Releng scripts to, in addition to the current builds, do builds with new catalyst features. Compare the output. This may require packaging catalyst differently (SLOTs, pip? something else.) Estimate: 20 hours. (f) Once we have the new builds working, decommission the host dependency builds Estimate: 2 hours. Expected challenges: - Getting access and transparency to Gentoo Infra code and processes is typically subpar. You can rely on talking to Alec Warner for transparency here (he is around as 'antarus' and can serve as your source for anything infra-related.) - Caching and State. Catalyst relies heavily on caches to do builds quickly and avoid constantly re-fetching distfiles and seed data and so on. Some care will have to be exercised in the design phase as making the builds very slow (e.g. by not having low-latency to distfiles such as a local copy) is an unacceptable outcome; we want the containerized builds to be approximately the same order of magnitude on speed. Making the builds faster is not a goal (but if they are faster, great.) Mentors: Matt Turner (mattst88) and Alec Warner (antarus) will be your mentors.