-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Builtin fetching should be representable by derivations #9077
Copy link
Copy link
Open
Labels
derivation designIssues to consider for new versions of the derivation format (major or incremental)Issues to consider for new versions of the derivation format (major or incremental)featureFeature request or proposalFeature request or proposalfetchingNetworking with the outside (non-Nix) world, input lockingNetworking with the outside (non-Nix) world, input lockinglanguageThe Nix expression language; parser, interpreter, primops, evaluation, etcThe Nix expression language; parser, interpreter, primops, evaluation, etcschedulingstoreIssues and pull requests concerning the Nix storeIssues and pull requests concerning the Nix store
Metadata
Metadata
Assignees
Labels
derivation designIssues to consider for new versions of the derivation format (major or incremental)Issues to consider for new versions of the derivation format (major or incremental)featureFeature request or proposalFeature request or proposalfetchingNetworking with the outside (non-Nix) world, input lockingNetworking with the outside (non-Nix) world, input lockinglanguageThe Nix expression language; parser, interpreter, primops, evaluation, etcThe Nix expression language; parser, interpreter, primops, evaluation, etcschedulingstoreIssues and pull requests concerning the Nix storeIssues and pull requests concerning the Nix store
Fields
Give feedbackNo fields configured for issues without a type.
Is your feature request related to a problem? Please describe.
Built-in fetchers block the evaluator. It's not possible to instantiate a derivation until the hash of the fetched source is computed.
Instead of fetching a source (
inputSrc) we could represent built-in fetchers using a derivation, similar tobuilder = "builtins:fetchurl";.This has the advantage that fetching the input can be
Describe the solution you'd like
Represent built-in fetching using derivations.
Fetch these outputs using built-in implementations that are not sandboxed, but trusted by virtue of being in Nix (as we do with
fetchTreeetc)When scheduling the derivations, request for the Nix client to perform
addToStoreinstead of scheduling an actual derivation build.Describe alternatives you've considered
A representation of builtin fetchers that doesn't piggyback on derivations. We'd be reinventing the wheel, and interleaving with drv scheduling would be hard.
Additional context
nivis more efficient thanflake = falseflakeinputsPriorities
Add 👍 to issues you find important.