Use all-cabal-nixes to improve IFD speed a little #65
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a new argument to stacklock2nix:
all-cabal-nixes.This argument takes a derivation providing the
all-cabal-nixesrepo. This repo is the result of runningcabal2nixon all the.cabalfiles inall-cabal-hashes.stacklock2nix internally calls
callHackageon all the dependencies coming from Hackage (for instance deps from both the Stackage resolver as well asextra-deps). Usingall-cabal-nixescan eliminate the need forcallHackage` and (some?) IFD.See the CHANGELOG and new documentation in this PR for more info.
This is related to #41.
This also uses @lf-'s
some-cabal-hashesidea from https://jade.fyi/blog/nix-evaluation-blocking/ to collect all thecabal2nixoutput for the given Stackage resolver and extra-deps into a separate derivation. This enables initial builds with a shared Nix cache to be a little quicker, since only this newsome-cabal-nixesneeds to be downloaded from the cache (instead of the fullall-cabal-nixesorall-cabal-hashes).