Hi Guix, We do afford limitations on what concerns available computing resources: it would be great if we could speed up CI tests, as well as the processing of team pipelines. Both features are great, but take quite a long time to run. New hardware will improve the situation, but there is probably something we can do from our side, in terms of workflow optimisation. This pr is an attempt to improve current situation.
A bit of background. CI farm builds every single pull request (pr) which doesn’t impact more than 300 dependent¹: on success, the pr is merged in master ... and rebuild back again, consuming computing resources (see guix/guix!9274, for example). Beyond the current 300 threshold, a pr should be send to a topic (team) branch; once every few, all the branch is built, all of its pr in a raw. On success, the branch is merged in master: available binaries are then available as substitutes, no extra computing resources are used². Teams, branches and Guix QA³ are a great idea, and way more computing efficient than processing individual pr. This is why I’m proposing here a slightly different strategy to alter the fraction of changes which fall into each category (see guix/guix!9314). - Reduce the current threshold from 300 to 150 dependents - Impose a threshold on patch version upgrades⁴ (see ‘patch-upgrade’ - codeberg tag) I’m assuming here that releasing CI computing resources will, first, make it more reactive in terms of delay to process incoming new pr; second, QA pipelines will execute faster, and this is something we definitely need; third, we will reduce the monthly bill. Note that the extra overload on branches will be compensated by reduced merge cycles. Finally, in guix/guix!9314 I’m also proposing a new homeless team, as a host for modules not below the umbrella of any other team. This comes to concretizing the ‘misc-world-rebuild’ current QA strategy (see also the ‘world-rebuild’ codeberg tag). Thoughts, alternatives or improvements ? Hoping that this couple of changes will make things a bit lighter⁵, Cayetano [1] https://guix.gnu.org/manual/devel/en/html_node/Managing-Patches-and-Branches.html [2] https://codeberg.org/guix/guix/issues/9098#issuecomment-16666955 [3] https://qa.guix.gnu.org/ [4] https://semver.org/ [5] https://yhetil.org/guix-devel/[email protected]/t/#u -- Cayetano Santos . gpg: CCB8 1842 F9D7 058E CD67 377A BF5C DF4D F6BF 6682 key: meta.sr.ht/~csantosb.pgp
signature.asc
Description: PGP signature
