quickcheck-state-machine v0.7.0 Release Notes

Release Date: 2020-03-17 // 18 days ago
    • Add Stack resolver lts-15 and drop lts-11;

    • High-level interface to the state machine API (PR #355) -- this captures the patterns described in http://www.well-typed.com/blog/2019/01/qsm-in-depth/ as a proper Haskell abstraction;

    • Experimental support for Markov chain-base command generation and reliability calculations;

    • forAllParallelCommands now gets another argument with type Maybe Int, indicating the minimum number of commands we want a test case to have. Nothing provides old functionality;

    • Fixed a bug in the parallel case for the mock function (PR #348) and other bugs related to references in the parallel case;

    • Add a new field in the StateMachine called cleanup. This function can be used to ensure resources are cleaned between tests. noCleanup can be used to achieve the older functionality;

    • Improved labelling;

    • Generalize parallelism, so that more than two threads can be used (PR #324);

    • Option to print dot visualisation of failed examples;

    • Handle exceptions better and provide better output.

Previous changes from v0.6.0

  • This is a breaking release. See mentioned PRs for how to upgrade your code, and feel free to open an issue if anything isn't clear.

    • Generalise shrinking so that it might depend on the model (PR #263);

    • Drop support for GHC 8.0.* or older, by requiring base >= 4.10 (PR #267). If you need support for older GHC versions, open a ticket;

    • Use Stack resolver lts-13 as default (PR #261);

    • Generalise the GConName type class to make it possible to use it for commands that cannot have Generic1 instances. Also rename the type class to CommandNames (PR #259).