Skip to content

[Bug]: Including matplotlib in 'extraPackages' leads to infinite recursion #338

@collinarnett

Description

@collinarnett

Current Behavior

{
  name,
  availableKernels,
  extraArgs,
}:
availableKernels.python {
  name = "jupyterWith-testing"; # must be unique
  displayName = "jupyterWith-testing";
  extraPackages = ps: [ ps.numpy ps.matplotlib ];
}

adding matplotlib to the example in the tutorial

leads to

$ nix run
warning: Using saved setting for 'extra-substituters = https://tweag-jupyter.cachix.org' from ~/.local/share/nix/trusted-settings.json.
warning: Using saved setting for 'extra-trusted-public-keys = tweag-jupyter.cachix.org-1:UtNH4Zs6hVUFpFBTLaA4ejYavPo5EFFqgd7G7FxGW9g=' from ~/.local/share/nix/trusted-settings.json.
warning: creating lock file '/home/collin/projects/jupyterWith-test/flake.lock'
error: infinite recursion encountered

       at /nix/store/fr68dr66gmggn62jir7vp1bcnignwxp9-source/pkgs/stdenv/generic/make-derivation.nix:311:7:

          310|       depsBuildBuild              = lib.elemAt (lib.elemAt dependencies 0) 0;
          311|       nativeBuildInputs           = lib.elemAt (lib.elemAt dependencies 0) 1;
             |       ^
          312|       depsBuildTarget             = lib.elemAt (lib.elemAt dependencies 0) 2;
(use '--show-trace' to show detailed location information)

Expected Behavior

Jupyter notebook with matplotlib and numpy available.

Steps To Reproduce

Add ps.matplotlib to extraPackages

Version

$ nix-shell -p nix-info --run "nix-info -m
"
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.59, NixOS, 22.11 (Raccoon), 22.11.20221024.afd4752`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.11.0`
 - channels(collin): `""`
 - channels(root): `"nixos-21.11.335130.386234e2a61"`
 - nixpkgs: `/nix/store/msv8qjxnga8h81biz33gpa4pyw9kg0j1-source

Additional Context

This is probably related to nix-community/poetry2nix#750. I'm not sure how I feel about having poetry2nix under jupyterWith. In the past I've had many issues using poetry2nix. Trying to diagnose nix issues + poetry issues is a real headache with nix's non-descriptive error messages. The previous jupyterWith was convenient because I could just specify what packages I wanted without caring about what versions I wanted. I understand the documentation is still under construction so maybe there's a simple method to use jupyterWith like I did previously.

Relevant log output

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions