devcontainers / devcontainers/features
Nix feature should provide a way to access `flake#devShell`
- Vorherrschende Sprache
- Shell
- Sterne
- 1.5k
- Forks
- 621
- Ø Merge
- 6 T. 53 Min.
- Gemergte PRs (30 T.)
- 9
Beschreibung
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."".default`). These are accessed with the command `nix develop flake#myShell`; an excerpt from https://nixos.wiki/wiki/Flakes:
```
# Used by `nix develop .#`
devShells.""."" = derivation;
# Used by `nix develop`
devShells."".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:
https://github.com/devcontainers/features/blob/f7f05f76fabda70f4fbcaefd55e6fe6fd09a8145/src/nix/post-install-steps.sh#L11-L15
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`.
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.