···11# pkgs.mkShell {#sec-pkgs-mkShell}
2233-`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`.
33+`pkgs.mkShell` is a special kind of derivation that is only useful when using
44+it combined with `nix-shell`. It will in fact fail to instantiate when invoked
55+with `nix-build`.
4657## Usage {#sec-pkgs-mkShell-usage}
6879```nix
810{ pkgs ? import <nixpkgs> {} }:
911pkgs.mkShell {
1010- # this will make all the build inputs from hello and gnutar
1111- # available to the shell environment
1212+ # specify which packages to add to the shell environment
1313+ packages = [ pkgs.gnumake ];
1414+ # add all the dependencies, of the given packages, to the shell environment
1215 inputsFrom = with pkgs; [ hello gnutar ];
1313- buildInputs = [ pkgs.gnumake ];
1416}
1517```
···106106 name = "gems-for-some-project";
107107 gemdir = ./.;
108108 };
109109-in mkShell { buildInputs = [ gems gems.wrappedRuby ]; }
109109+in mkShell { packages = [ gems gems.wrappedRuby ]; }
110110```
111111112112With this file in your directory, you can run `nix-shell` to build and use the gems. The important parts here are `bundlerEnv` and `wrappedRuby`.
···4242 pytest-mock
4343 ];
44444545+ disabledTests = [
4646+ # this test is flaky on darwin because it depends on the resolution of filesystem mtimes
4747+ # https://github.com/cldf/csvw/blob/45584ad63ff3002a9b3a8073607c1847c5cbac58/tests/test_db.py#L257
4848+ "test_write_file_exists"
4949+ ];
5050+4551 meta = with lib; {
4652 description = "CSV on the Web";
4753 homepage = "https://github.com/cldf/csvw";