Description
It is common for repositories which provide flakes to provide development shells under a top-level attribute flake#devShells
, with flake#devShell
being the default one (an alias for flake#devShells."<system>".default
). These are accessed with the command nix develop flake#myShell
; an excerpt from https://nixos.wiki/wiki/Flakes:
# Used by `nix develop .#<name>`
devShells."<system>"."<name>" = derivation;
# Used by `nix develop`
devShells."<system>".default = derivation;
However, you can't pass something like "flakeUri": "github:owner/repo#devShell"
to the Nix feature provided here, because it (rightly) complains that this isn't a derivation (the correct derivation would be github:owner/repo#devShell.x86_64-linux
). Fundamentally, this is because the implementation uses nix profile install
, which searches for derivations under the flake#packages
top-level attribute:
features/src/nix/post-install-steps.sh
Lines 11 to 15 in f7f05f7
Ideally, somewhere in this feature a call should be made to nix develop
to enable access to the development shells provided by a flake, rather than having to use the workaround of flake#devShell.x86_64-linux
.