pytest artifacts cause path collision, which perhaps don't need to be in the store at all such as .pytest_cache
e.g.
collision between `/nix/store/h01wwkl5ljqkj9yh2gjchr82a8ghm6zq-python3.6-traitlets-4.3.2/.pytest_cache/v/cache/nodeids' and `/nix/store/xxzn78g3wcml73zf3y588v4ln51xcz52-python3.6-et_xmlfile-1.0.1/.pytest_cache/v/cache/nodeids'
Please run nix-shell -p nix-info --run "nix-info -m" and paste the
results.
- system: `"x86_64-linux"`
- host os: `Linux 4.16.7, NixOS, 18.09pre139319.1d9330d63a5 (Jellyfish)`
- multi-user?: `yes`
- sandbox: `no`
- version: `nix-env (Nix) 2.0.2`
- channels(root): `"nixos"`
...
It looks like they are both doing manual checkPhase scripts:
https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/python-packages.nix#L5276
&
https://github.com/NixOS/nixpkgs/blob/5c2d2cbff321387bbada44ba86f7d422f53b88b7/pkgs/development/python-modules/traitlets/default.nix#L26
I wonder if they aren't needed any more?
/cc @fridh
Interesting, I did not know about the .pytest_cache files. It seems they are created when we use pytest $out.
I've fixed the build of traitlets on master and the issue specifically to that package in 3390592cfc5d5406f7316a31661e6b0eeb2d352b.
I wonder if they aren't needed any more?
These are needed because the default checkPhase does python setup.py test which fewer and fewer packages use.
Just adding for searchability/reference: et_xmlfile still includes this, and pytest could alternatively be called like py.test -p no:cacheprovider $out if we don't want this cache dir created at all.
pytest could alternatively be called like py.test -p no:cacheprovider $out if we don't want this cache dir created at all.
This approach was attempted as well, however, it would break tests that require the cache.