forked from NixOS/nix
-
Notifications
You must be signed in to change notification settings - Fork 1
Build-time flake inputs #49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
edolstra
wants to merge
17
commits into
detsys-main
Choose a base branch
from
build-time-fetch-tree
base: detsys-main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This comment was marked as resolved.
This comment was marked as resolved.
88d5913
to
d146d3b
Compare
d146d3b
to
36a25f9
Compare
This builtin builder is similar to `builtins.fetchTree` but works at build time.
This is needed for builtin:fetch-tree to get access to it.
This only works for non-flake inputs. Example: inputs.repo1 = { type = "github"; owner = "DeterminateSystems"; repo = "blabla"; flake = false; buildTime = true; }; `call-flake.nix` maps this to a builtin:fetch-tree derivation. Thus you can pass it to other derivations, and it will be fetched at build time rather than eval time. (It will still be fetched at eval time to create/update locks.) Importing from such an input triggers IFD.
36a25f9
to
febe4de
Compare
This reverts commit 94facc9.
The cache is now part of fetchers::Settings.
This keeps the tarball cache open across calls.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Motivation
This PR does two things:
It adds a new builtin derivation builder named
builtin:fetch-tree
, which is similar tobuiltins.fetchTree
but works at build time rather than eval time.It allows flake inputs to be fetched at build time. Example:
call-flake.nix
maps this to abuiltin:fetch-tree
derivation. Thus you can pass it to other derivations, and it will be fetched at build time rather than eval time. (It will still be fetched at eval time to create/update locks.)Inputs like this can be passed to derivations as usual, e.g.
Note that trying to access them at evaluation time (e.g.
import repo1
) will trigger import-from-derivation behaviour, i.e. it will cause a build during evaluation.Context
Add 👍 to pull requests you find important.
The Nix maintainer team uses a GitHub project board to schedule and track reviews.