The main change this PR does is that it considers jetify read caches when determining if a given store path is in binary cache. It loops though all caches (default nix cache, jetify provided caches) and if it finds a path in any one of them, we know output is in binary cache. It also changes the fetch nar info function so that it stores which cache each output is in since we may now use multiple caches.
List of changes:
fetchNarInfoStatusOnce now checks all caches and returns which cache each output is in.
Moved in memory cache to be at the request level instead of output level. This is more efficient because the meta-output __default_output__ can now propertly use the request cache.
Changed providers to be true singletons.
Small improvements to flake template to prepare for each output using own cache. (Currently there's a hack in there where we always use nix cache as fromStore even if not correct. See comment in code.
How was it tested?
Installed https://github.com/Lagoja/terraform-test and confirmed cache was used.
Summary
The main change this PR does is that it considers jetify read caches when determining if a given store path is in binary cache. It loops though all caches (default nix cache, jetify provided caches) and if it finds a path in any one of them, we know output is in binary cache. It also changes the fetch nar info function so that it stores which cache each output is in since we may now use multiple caches.
List of changes:
fetchNarInfoStatusOnce
now checks all caches and returns which cache each output is in.__default_output__
can now propertly use the request cache.fromStore
even if not correct. See comment in code.How was it tested?
Installed
https://github.com/Lagoja/terraform-test
and confirmed cache was used.