quickcheck icon indicating copy to clipboard operation
quickcheck copied to clipboard

Version bump to 2.15

Open MaximilianAlgehed opened this issue 1 year ago • 9 comments

Thoughts welcome, are there any outstanding PRs that we should try to incorporate in this release? I would be happy if we could get #387 and maybe #376 (but I'm not sure if the design work is done there yet).

MaximilianAlgehed avatar Apr 03 '24 07:04 MaximilianAlgehed

I think both of the mentioned PRs could be included, no? #387 seems like low-hanging fruit, and #367 does not seem to affect existing users negatively. They can opt in to use the new interface if they want to, but retain the old behavior if they don't take any action.

Rewbert avatar Apr 03 '24 08:04 Rewbert

@Rewbert Whoops, I meant #376 not #367

MaximilianAlgehed avatar Apr 03 '24 10:04 MaximilianAlgehed

Also, c.f. my comment over on #387 for why I have some issues there that we could, in principle, ignore but which may come back to bite us in the future.

MaximilianAlgehed avatar Apr 03 '24 10:04 MaximilianAlgehed

Right, that PR is a bit more substantial. It is a feature that makes a lot of sense, but as you say, there is more design-work involved there than the other PRs. I like it, though!

What I've done in the past is to install a monitor that fires whenFail, which writes the counterexample to an MVar. A bit crude.

Rewbert avatar Apr 04 '24 08:04 Rewbert

There is also @nick8325's package that modifies the interface to QuickCheck that solves this in another hacky-but-elegant way: https://hackage.haskell.org/package/quickcheck-with-counterexamples-1.2/candidate/docs/Test-QuickCheck-Counterexamples.html

MaximilianAlgehed avatar Apr 04 '24 08:04 MaximilianAlgehed

I just looked at it, I like it as well! Your implementation is smaller and perhaps 'easier' to retrofit onto QuickCheck (I did not look at Nicks code yet, only the API), whereas Nicks might give users a bit more help with accessing the counterexamples. Maybe there is a third alternative that takes the best from both... I shall look at Nicks code and wrap my head around it.

Rewbert avatar Apr 04 '24 08:04 Rewbert

It would be nice to have #393 merged too in the next release

MaximilianAlgehed avatar Apr 04 '24 10:04 MaximilianAlgehed

Looks like a good release! #376 is the main one to be decided on still, right?

One change is missing from the changelog: properties are no longer implicitly wrapped in once (c606b7b3). I guess that's a breaking change (e.g. properties of type prop_whatever :: IO Bool will now be tested 100 times instead of once), so maybe according to PVP we should bump the version to 2.15?

nick8325 avatar Apr 17 '24 18:04 nick8325

@nick8325 I've updated the changelog to reflect the breaking once change, updated the version bound, and I've added a changelog entry for the now-completed #376.

There was more discussion in #376 about more aggressive changes to QuickCheck to make it more like quickcheck-counterexample but I think that can wait until a later release and until we've had time to take the current changes for a spin.

MaximilianAlgehed avatar Apr 18 '24 08:04 MaximilianAlgehed

Released! Thanks a lot @MaximilianAlgehed!

nick8325 avatar Apr 22 '24 12:04 nick8325