You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
nix build merely creates whatever it is that you pass to it. If that's a derivation path, it doesn't build it. That's a valid behavior despite its name. (I've previously proposed nix create for this behavior, but I can accept this quirk)
Another issue is that it does too much. Not only does it run the builder; it also copies outputs to the store. This may not be useful or desired, for instance when invoking nix in CI.
Describe the solution you'd like
nix derivation build - as a plumbing command - promises very little: only run the builder, (locally or remotely) and don't bother with outputs.
This should require a derivation path, so as not to suffer from the naming problem that nix build has. To build the derivation backing a certain output, add the store level derivationOf operator, ^..
This would make sense to me, but needs validation by actual users (I don't call the nix CLI; I let Hercules CI handle such minutiae for me).
Describe alternatives you've considered
Maybe nix derivation build is expected to be an alias of nix build or vice versa?
This makes nix-fast-build partially obsolete, and that's a good thing.
Some destination store parameter, which could be set to empty. I don't like flags that remove functionality. Doing too much shouldn't be the default - it leads to bloated interfaces.
Is your feature request related to a problem? Please describe.
nix build
merely creates whatever it is that you pass to it. If that's a derivation path, it doesn't build it. That's a valid behavior despite its name. (I've previously proposednix create
for this behavior, but I can accept this quirk)Another issue is that it does too much. Not only does it run the builder; it also copies outputs to the store. This may not be useful or desired, for instance when invoking
nix
in CI.Describe the solution you'd like
nix derivation build
- as a plumbing command - promises very little: only run the builder, (locally or remotely) and don't bother with outputs.This should require a derivation path, so as not to suffer from the naming problem that
nix build
has. To build the derivation backing a certain output, add the store levelderivationOf
operator,^..
This would make sense to me, but needs validation by actual users (I don't call the
nix
CLI; I let Hercules CI handle such minutiae for me).Describe alternatives you've considered
Maybe
nix derivation build
is expected to be an alias ofnix build
or vice versa?This makes
nix-fast-build
partially obsolete, and that's a good thing.Some destination store parameter, which could be set to empty. I don't like flags that remove functionality. Doing too much shouldn't be the default - it leads to bloated interfaces.
Additional context
Priorities
Add 👍 to issues you find important.
The text was updated successfully, but these errors were encountered: