NixOS/nix

Systematize `nix build`, `nix shell`, `nix develop`, etc (tracking issue)

Open

#10.504 aberto em 15 de abr. de 2024

Ver no GitHub
 (7 comments) (15 reactions) (0 assignees)C++ (1.293 forks)batch import
featuregood first issuenew-cli

Métricas do repositório

Stars
 (9.803 stars)
Métricas de merge de PR
 (Mesclagem média 4d 12h) (86 fundiu PRs em 30d)

Description

Is your feature request related to a problem? Please describe.

As discussed in the meeting of 2024-04-15, we propose a new, more systematic naming scheme for these commands, so that they fit into the noun-verb format. Aliases for the current "short commands" will be kept. The purpose of the scheme is to make it so that by following the aliases, the other, less used functionality becomes more easily discoverable.

Describe the solution

Add plumbing commands, and turn the short commands such as nix run into aliases that point to the right place in this noun-verb command hierarchy:

  • nix dev: behaviors that use a nix develop-like interpretation of installables, or (later) #7501

    • nix dev print-env: nix print-dev-env (rename+alias)
    • nix dev shell: nix develop (rename+alias)
    • nix dev run: nix develop -c (rename+alias)
    • nix dev script: scoped out for now (could print a script suitable for $SHELL; depends on #7501)
  • nix env: commands that modify the environment

    • nix env run: setenv + execvp?
      • not decided - maybe this should instead just be a flag to nix run/nix package run?
      • we have better env manipulation now thanks to @bryanhonof https://github.com/NixOS/nix/pull/11494, so the new "original" name makes more sense
    • nix env shell: nix shell, ie setenv + start $SHELL (rename+alias)
    • #10508
  • nix package: "normal" use of installable (whatever that means for the verb)
  • nix sandbox: issue tbd (@roberth)

Evaluate whether the code (also file layout, test layout) can be improved after the renames.

Describe alternatives you've considered

There's a long thread, #4715, but note that it's mostly about one or two command; it rarely discusses a naming system.

Additional context

This is somewhat based on https://github.com/NixOS/nix/issues/4715#issuecomment-917069357, but with new insights and team discussion.

Priorities

Add :+1: to issues you find important.

Guia do colaborador