Created Started Cancelled
By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Discover the dependency graph as well, synchronously Discovery derives the job graph from the derivations, so the manual graph shrinks to the edges that are not derivation dependencies at all and that nothing can therefore discover: 10 of the 80 it used to carry. Discovered edges merge with configured ones, so the other 70 are not lost, they are found. I measured rather than guessed which ones those are: for each edge, is the dependency's derivation in the dependent's input closure. The ten that are not divide in two: - the impure test runners are small scripts that run `nix build` themselves, so nothing in their derivations mentions the nextest archives, the python module or the cargo artifacts they will ask for. Without these edges each runner builds its own copy. - gammaloop-fmt gates packages.gammaloop rather than feeding it. Discovery is synchronous, so no job starts before the graph is known. An edge missing from a hand-written graph lets two jobs build the same derivation at once and we pay for both, which is the shape of the duplicate work in the suites we looked at.