You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At the moment build-packages builds ~6 derivations in a single Nix command. That doesn't seem so bad... except that each of them is its own independent cabal project, and so needs to do the haskell.nix cabal planning IFD. So in fact the evaluation time becomes significant: about 5min at the moment, and it'll be more as we add more packages to the smoke test.
(For the building we have nixbuild.net, which is massively parallel, but the evaluation is serial!)
It would be nice to cut this down. At the moment the only way I can think of doing that is to do a matrix build in GHA, with each package in its own job. Then the evaluation work can be done in parallel. But this would be a bit annoying, we'd need to get the list of things to build out of the flake and then call back into it again...
The text was updated successfully, but these errors were encountered:
Hmm, interesting. Hopefully it'll use remote builders for the IFD still, but that could be a big improvement.
I'm unsure if we want to generate a matrix: probably we do if it's for the smoke test or new packages, but we wouldn't if we decided to try and build everything since matrixes are limited to 256 jobs (hah). And also the real parallelism will be happening on nixbuild.net, we'll just be occupying |matrix| runners sitting there waiting for builds to finish!
At the moment
build-packages
builds ~6 derivations in a single Nix command. That doesn't seem so bad... except that each of them is its own independent cabal project, and so needs to do thehaskell.nix
cabal planning IFD. So in fact the evaluation time becomes significant: about 5min at the moment, and it'll be more as we add more packages to the smoke test.(For the building we have
nixbuild.net
, which is massively parallel, but the evaluation is serial!)It would be nice to cut this down. At the moment the only way I can think of doing that is to do a matrix build in GHA, with each package in its own job. Then the evaluation work can be done in parallel. But this would be a bit annoying, we'd need to get the list of things to build out of the flake and then call back into it again...
The text was updated successfully, but these errors were encountered: