What does 'This PR does not cleanly list package outputs after merging.' mean?
bouk opened this issue · comments
Hi there!
I got this error on my NixPkgs PR: 'This PR does not cleanly list package outputs after merging.'
Then I'm brought to a gist which has some sort of trace in it. What does this error mean?
Might I suggest to add some sort of wiki link/description in the gist describing what error I made, and how to resolve it?
This could happen for any number of reasons (for example, a missing dependency argument when it is used in the derivation, or adding yourself as a maintainer when you don't have an entry in maintainer-list.nix
). Could you link to the PR where this is happening, so I can help further?
Unfortunately, some/most Nix traces are rarely helpful... There has been a recent implementation of friendlier-looking errors which is on Nix master
, but it hasn't made its way into a released version yet (I think), so I don't know how well it'll improve the situation.
I got it here: NixOS/nixpkgs#89553 which is a vim plugin PR that I adapted to work.
It's a bit weird because it calls a generated nix file inline, which I guess is what sets off this error.
you can click on "details" related to the check, and it will give you some output:
cannot import '/nix/store/c4adan2iicfjxyrkj8w0nywzdvf5x7ja-nvim-typescript-rplugin.nix', since path '/nix/store/psm7wwifgn8sik1i1yxafnrxagrzjshm-nvim-typescript-rplugin.nix.drv' is not valid, at /var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/mr-est/packet-spot-eval-2/lib/customisation.nix:119:45
That error looks like import from derivation, which isn't allowed within nixpkgs.
Right, that's what I figured. Thanks for the clarification 🙂. Would be very helpful if the error message was 'Import from derivation is not allowed' or something for a noob like me!
yea, a derivation was being passed to callPackage
, made a suggestion: NixOS/nixpkgs#89553 (comment)
The error comes from nix itself, could be mistaken but I thought it used to mention restricted evaluation mode at least.
My follow up comment noticed that it was running node2nix at evaluation time, which is probably the root cause