NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
17.91k stars 13.95k forks source link

Python: handle circular test dependencies #63168

Open FRidh opened 5 years ago

FRidh commented 5 years ago

Issue description

It's not uncommon for test tools to depend on each other in each others checkInputs.

Steps to reproduce

Technical details

Please run nix-shell -p nix-info --run "nix-info -m" and paste the results.

jonringer commented 5 years ago

@FRidh bump

I've seen the otherpackage.overrideAttrs(oldAttrs: { doCheck = false; }); hack, but is there another solution to this?

FRidh commented 5 years ago

Nope. Nix creates a directed acyclic graph so it is fundamentally impossible to solve this correctly aside from breaking these loops in such a way. Ideally we would have an automated way to break the loop and then rebuild the package with tests again.

stale[bot] commented 4 years ago

Thank you for your contributions. This has been automatically marked as stale because it has had no activity for 180 days. If this is still important to you, we ask that you leave a comment below. Your comment can be as simple as "still important to me". This lets people see that at least one person still cares about this. Someone will have to do this at most twice a year if there is no other activity. Here are suggestions that might help resolve this more quickly:

  1. Search for maintainers and people that previously touched the related code and @ mention them in a comment.
  2. Ask on the NixOS Discourse. 3. Ask on the #nixos channel on irc.freenode.net.
jonringer commented 4 years ago

@FRidh unless we have a way to recursively disable tests for an entire dependency tree, I don't see this issue going anywhere. The current paradigm of disabling testing on the few packages when it's applicable (hypothesis, pytest, very few others) is okay with me for the time being. If this does become a broader issue, then it might be worth revisiting.

stale[bot] commented 3 years ago

I marked this as stale due to inactivity. → More info