From c6b62f2381571cc83c6c32ef4984fabcbb4ca892 Mon Sep 17 00:00:00 2001 From: Jonas Chevalier Date: Thu, 13 May 2021 19:17:29 +0200 Subject: mkShell: introduce packages argument (#122180) The distinction between the inputs doesn't really make sense in the mkShell context. Technically speaking, we should be using the nativeBuildInputs most of the time. So in order to make this function more beginner-friendly, add "packages" as an attribute, that maps to nativeBuildInputs. This commit also updates all the uses in nixpkgs. --- doc/builders/special/mkshell.section.md | 10 ++++++---- doc/languages-frameworks/dotnet.section.md | 4 ++-- doc/languages-frameworks/python.section.md | 2 +- doc/languages-frameworks/ruby.section.md | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) (limited to 'doc') diff --git a/doc/builders/special/mkshell.section.md b/doc/builders/special/mkshell.section.md index 1feb75cbd6f7..8a62c50e17dd 100644 --- a/doc/builders/special/mkshell.section.md +++ b/doc/builders/special/mkshell.section.md @@ -1,15 +1,17 @@ # pkgs.mkShell {#sec-pkgs-mkShell} -`pkgs.mkShell` is a special kind of derivation that is only useful when using it combined with `nix-shell`. It will in fact fail to instantiate when invoked with `nix-build`. +`pkgs.mkShell` is a special kind of derivation that is only useful when using +it combined with `nix-shell`. It will in fact fail to instantiate when invoked +with `nix-build`. ## Usage {#sec-pkgs-mkShell-usage} ```nix { pkgs ? import {} }: pkgs.mkShell { - # this will make all the build inputs from hello and gnutar - # available to the shell environment + # specify which packages to add to the shell environment + packages = [ pkgs.gnumake ]; + # add all the dependencies, of the given packages, to the shell environment inputsFrom = with pkgs; [ hello gnutar ]; - buildInputs = [ pkgs.gnumake ]; } ``` diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md index 36369fd4e634..725ffd4becc0 100644 --- a/doc/languages-frameworks/dotnet.section.md +++ b/doc/languages-frameworks/dotnet.section.md @@ -10,7 +10,7 @@ with import {}; mkShell { name = "dotnet-env"; - buildInputs = [ + packages = [ dotnet-sdk_3 ]; } @@ -25,7 +25,7 @@ with import {}; mkShell { name = "dotnet-env"; - buildInputs = [ + packages = [ (with dotnetCorePackages; combinePackages [ sdk_3_1 sdk_3_0 diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index 96ac61ab54c5..b466748f5480 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -245,7 +245,7 @@ let ps.toolz ]); in mkShell { - buildInputs = [ + packages = [ pythonEnv black diff --git a/doc/languages-frameworks/ruby.section.md b/doc/languages-frameworks/ruby.section.md index c519d79d3daf..b8fc19eb6b02 100644 --- a/doc/languages-frameworks/ruby.section.md +++ b/doc/languages-frameworks/ruby.section.md @@ -106,7 +106,7 @@ let name = "gems-for-some-project"; gemdir = ./.; }; -in mkShell { buildInputs = [ gems gems.wrappedRuby ]; } +in mkShell { packages = [ gems gems.wrappedRuby ]; } ``` With this file in your directory, you can run `nix-shell` to build and use the gems. The important parts here are `bundlerEnv` and `wrappedRuby`. -- cgit 1.4.1