tasty-0.8 and other news
Published on
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:
- Danny Navarro and Chris Catalfo are working on tasty-html;
- Tyler Huffman is going to improve the HSpec test provider.
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,
operation-dependency-streamline. roll your own copies of code and types
instead of depending on different packages.
— Vincent Hanquez (@vincenthz)
February
27, 2014
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:
- 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. - Refusing to depend on
reducers
. Instead, I just copied the desired pieces. - Using
unbounded-delays
for timeouts instead ofdata-timeout
that I considered initially. This one actually shows the danger of fat dependencies — one ofdata-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.