Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

haskell.packages: deal with evaluation fall out of most recent stackage update #123683

Merged

Conversation

sternenseemann
Copy link
Member

random 1.2.0 has a new test suite with a lot of dependencies. Among
other packages it depends on doctest which depends on syb which depends
on tasty which depends on optparse-applicative which depends on
QuickCheck which depends on -- you guessed it -- random!

The cycle could be broken at any point of course, I've disabled the
tests on random here because it has seen the change that causes all
of this. However, we may also want to consider doing this for
optparse-applicative instead, since random seems like a more critical
package to run the tests for possibly? Not sure, looking for feedback.

Motivation for this change
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

random 1.2.0 has a new test suite with a lot of dependencies. Among
other packages it depends on doctest which depends on syb which depends
on tasty which depends on optparse-applicative which depends on
QuickCheck which depends on -- you guessed it -- random!

The cycle could be broken at any point of course, I've disabled the
tests on random here because it has seen the change that causes all
of this. However, we may also want to consider doing this for
optparse-applicative instead, since random seems like a more critical
package to run the tests for possibly? Not sure, looking for feedback.
@sternenseemann
Copy link
Member Author

Eval error is on target branch, so check meaningless.

@maralorn
Copy link
Member

I feel like I had encountered these issues before. Can you tell how the loop got introduced?

We arrived at 0.14.0.0 naturally via stackage.
hashable's test suite pins random to < 1.2 even in the latest release on
hackage, but lifting the bound fixes the build without any issues. Using
a patch so we are reminded to remove it when it's unnecessary.
These are not necessary anymore as stackage naturally contains random
1.2.0 and we apply the hashable fix globally as well.
random 1.2.0 is our default version now.
@sternenseemann sternenseemann changed the title haskellPackages: fix infinite recursion by disabling random's tests haskell.packages: deal with evaluation fall out of most recent stackage update May 19, 2021
@sternenseemann
Copy link
Member Author

I feel like I had encountered these issues before. Can you tell how the loop got introduced?

As outlined in the commit message:

random 1.2.0 tests -> doctest -> syb tests -> tasty -> optparse-applicative tests -> QuickCheck -> random 1.2.0

We actually had that in cabal-install where we already used random 1.2.0 (see 5110223) and we used the dontCheck approach as well there.

@cdepillabout
Copy link
Member

Great, this looks like it gets everything evaluating again with nix-env --query --available --out-path --file ./. --show-trace. Please feel free to merge this in.

@sternenseemann sternenseemann merged commit e4c634d into NixOS:haskell-updates May 19, 2021
@sternenseemann sternenseemann deleted the fix-infinite-recursion branch May 19, 2021 13:44
@maralorn
Copy link
Member

I feel like I had encountered these issues before. Can you tell how the loop got introduced?

As outlined in the commit message:

random 1.2.0 tests -> doctest -> syb tests -> tasty -> optparse-applicative tests -> QuickCheck -> random 1.2.0

We actually had that in cabal-install where we already used random 1.2.0 (see 5110223) and we used the dontCheck approach as well there.

What I meant is: Is this a new problem or did older random versions also have this loop and how did we solve this then? But it’s not that important …

@sternenseemann
Copy link
Member Author

This is a new problem due to the update to random 1.2.0. Previously randoms test suite only depended on base.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants