Roman Cheplyaka

tasty-0.8 and other news

March 3, 2014

I’m glad to announce the 0.8 release of tasty, a modern Haskell testing framework.

Among the important user-visible changes are:

  • New running modes --hide-successes and --quiet
  • Short flags for some existing options (-p for --pattern, -j for --num-threads)
  • Timeout support
  • Possibility to pass options via environment variables
  • Fix of a resources-related bug

For details, see the CHANGELOG and README.

Social

tasty now has a mailing list and an IRC channel #tasty at FreeNode. The IRC channel is logged at ircbrowse.net (thanks to Chris Done).

Volunteers

I’d like to thank people who kindly responded to my requests for help with tasty-related packages:

Dependencies

I recently started to pay more attention to (transitive) dependencies of my packages. More transitive dependencies (esp. those that I do not control) means greater probability that something will break, not to mention the compile times.

As Vincent Hanquez put it,

For comparison, here are dependency graphs for tasty-0.7 and tasty-0.8, produced by John Millikin’s new cabal-graphdeps tool:

The gains were achieved by:

  1. Dropping the dependency on either. First I just copied the code over to tasty, but then realized that using exceptions in that case was an even better solution.
  2. Refusing to depend on reducers. Instead, I just copied the desired pieces.
  3. Using unbounded-delays for timeouts instead of data-timeout that I considered initially. This one actually shows the danger of fat dependencies — one of data-timeout’s dependencies fails to build with GHC 7.4 due to an alleged compiler bug affecting some piece of code that is completely irrelevant for my purposes.