Repository navigation
Expose the Rust kernel's import-from-derivation input - #122
Merged
Merged
Conversation
Evaluating a Rust environment forces Cargo-nix: overrideInputs imports its crate-names.nix and vendorDependencies callPackages its default.nix. Nothing the environment produces refers to it, so it is absent from the closure a consumer would seed a binary cache with, and an offline builder cannot evaluate the environment at all.
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
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.
Evaluating a Rust environment forces
Cargo-nix:overrideInputsimports itscrate-names.nixandvendorDependenciescallPackages itsdefault.nix. Nix has to realise it before it can finish evaluating the environment, and so before it can substitute the environment's own output.Nothing the environment produces refers to
Cargo-nix, so it is absent from the closure, and a consumer that seeds a binary cache from that closure leaves an offline builder unable to evaluate the environment at all. It falls back to building a stdenv from source and dies fetchingstage0-posix.makeEnvironmentnow carriespassthru.evalTimeDerivations, collected from the kernels, language servers, exporters and packages it built. The Rust kernel is the only current contributor; everything else yields an empty list. Nothing is added to any output, so no derivation changes.Consumed by codedown's test binary cache, which adds these to its root paths.