[WIP] add --root-realisations to nix-instantiate #3086
Closed
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.
Currently using IFD (or similar mechanisms such as readFile from a derivation) together with garbage collection is a bad experience, since all derivations required for evaluation will have to be completely rebuilt after each run.
This PR adds an option
--root-realisations
tonix-instantiate
which mirrors--add-root
but creates a GC root for derivations used for evaluation instead of those that are the result of the evaluation.There is some duplication of code with
--add-root
, but abstracting over both is complicated by--add--root
using successive numbering for results instead of putting them in a folder and it outputting paths to the GC roots instead of the store paths.At this point, especially since this is my first PR to Nix, and I'm not really familiar with C++, I'm mostly looking for general feedback on chance of this feature in the abstract being merged, whether to change
--add-root
behavior (numbered outputs have always seemed strange to me since there's potentially garbage left over with successive invocations), and general direction of implementation.