packages feed

quickcheck-state-machine-0.10.1: CHANGELOG.md

#### 0.10.1 (2024-09-05)

* Bump upper bounds of outdated dependencies.

* Add ghc-9.10.1 to the CI build matrix.

#### 0.10.0 (2024-05-28)

* Revert `WithSetup` variants that were introduced in 0.7.2. Due to the way
  repetitions are done now, there is no need for these variants anymore (PR #43);

* Delete `run[N]ParallelCommandsNTimes` in favor of the new
  `forAll[N]ParallelCommandsNTimes` as repetitions now happen at the `forAll`
  level (PR #43);

* Rename `forall` to `forAll` as it will be a reserved word starting
  in GHC 9.10.1 (see [GHC proposal 281](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0281-visible-forall.rst)) (PR #49);

* Replace `ansi-wl-pprint` with `prettyprinter` because `ansi-wl-pprint` was
  deprecated in favour of `prettyprinter` (PR #49).


#### 0.9.0 (2024-01-16)

* Split the package into the machinery that abstracts over whichever diffing
  implementation is in use (via the `CanDiff` class), and the implementation of
  that class via the vendored tree-diff. See the
  [README](https://github.com/stevana/quickcheck-state-machine#using-quickcheck-state-machine-as-a-dependency)
  for more details on how to depend on either.

* Support building with ghc-9.8.1.

#### 0.8.0 (2023-11-17)

* BREAKING CHANGE: Remove `markov-chain-usage-model` dependency and the related
  `Test.StateMachine.Markov` module. The tests of the dependency started
  failing:
  https://github.com/advancedtelematic/markov-chain-usage-model/issues/44 , and
  I don't think anyone is using that functionality anyway, so I decided to
  remove it (please let me know if this breaks your tests);

* Disable `ProcessRegistry` test for now, the generator needs to be migrated
  away from using the removed `Markov` module;

* Remove RQLite test as it was causing build issues with newer versions of GHC;

* Add support for newer versions of GHC (9.2.8, 9.4.7, and 9.6.3);

* Remove support for GHC 8.4.4, we need QuantifiedConstraints to build latest
  version of servant;

* Remove support for GHC 8.6.5 (released 23rd April 2019);

* Remove stack support;

* Add nix support;

* Add back CI support via GitHub Actions (remove old travis config);

* Remove the tree-diff dependency, and copy in the relevant bits that we need
  from the 0.0.2.1 version instead. The reason for this is that after that
  version the license was changed from BSD to GPL and pinning the dependency to
  that version doesn't compile with newer GHC versions, by inlining tree-diff we
  are in control of its dependecy bounds (and can thus make it compile with
  newer versions of GHC).

#### 0.7.3 (2023-6-1)

  * Fix compatibility with GHC 9.6 (PR #20, thanks @erikd);

  * Fix printing of boxed diagrams of parallel properties (PR #21);

  * Parallel properties will now show a message indicating what looks like it
    could be the cause of the property failing (PR #21).

#### 0.7.2 (2023-4-20)

  * Fix compatibility with GHC 9.0 and 9.2 (PR #7, thanks @edsko);

  * Various documentation improvements (PR #9, #10 and #13, thanks @Jasagredo);

  * Introduce new `runXCommandsXWithSetup` which allow for monadic
    initialization of the state machine for each test case execution (PR #12,
    thanks @Jasagredo).

#### 0.7.1 (2021-8-17)

  * Update links and references from the old archived repo at the
    `advancedtelematic` Github organisation to the active fork of the repo at
    the Github user `stevana`.

#### 0.7.0 (2020-3-17)

  * 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.

#### 0.6.0 (2019-1-15)

  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).

#### 0.5.0 (2019-1-4)

  The first and third item in the below list might break things, have a look at
  the diffs of the PRs on how to fix your code (feel free to open an issue if it
  isn't clear).

  * Allow the user to explicitly stop the generation of commands (PR #256);
  * Fix shrinking bug (PR #255);
  * Replace MonadBaseControl IO with MonadUnliftIO (PR #252);
  * Check if the pre-condition holds before executing an action (PR #251).

#### 0.4.3 (2018-12-7)

  * Support QuickCheck-2.12.*;
  * Use new compact diffing of records from tree-diff library when displaying
    counterexamples;
  * Explain mock better in the README;
  * Handle exceptions more gracefully;
  * Show, possibly multiple, counterexample when parallel property fails.

#### 0.4.2 (2018-9-3)

  * Fix bug that made tests fail on systems without docker;
  * Remove some unused dependencies found by the weeder tool.

#### 0.4.1 (2018-8-31)

  * Minor fixes release:

    - Fix broken link and code in README;
    - Disable web server tests when docker isn't available (issue #222).

#### 0.4.0 (2018-8-21)

  * Major rewrite, addressing many issues:

    - The output of sequential runs now shows a diff of how the model changed in
      each step (related to issue #77);

    - The datatype of actions was renamed to commands and no longer is a GADT
      (discussed in issue #170, also makes issue #196 obsolete);

    - Commands can now return multiple references (issue #197);

    - Global invariants can now more easily be expressed (issue #200);

    - Counterexamples are now printed when post-conditions fail (issue #172).

#### 0.3.1 (2018-1-15)

  * Remove upper bounds for dependencies, to easier keep up with
    Stackage nightly.

#### 0.3.0 (2017-12-15)

  * A propositional logic module was added to help provide better
    counterexamples when pre- and post-conditions don't hold;

  * Generation of parallel programs was improved (base on
    a [comment](https://github.com/Quviq/QuickCheckExamples/issues/2) by
    Hans Svensson about how Erlang QuickCheck does it);

  * Support for semantics that might fail was added;

  * Pretty printing of counterexamples was improved.

#### 0.2.0

  * Z-inspired definition of relations and associated operations were
    added to help defining concise and showable models;

  * Template Haskell derivation of `shrink` and type classes: `Show`,
    `Constructors`, `HFunctor`, `HFoldable`, `HTraversable`;

  * New and more flexible combinators for building sequential and
    parallel properties replaced the old clunky ones;

  * Circular buffer example was added;

  * Two examples of how to test CRUD web applications were added.

#### 0.1.0

  * The API was simplified, thanks to ideas stolen from
    [Hedgehog](https://github.com/hedgehogqa/haskell-hedgehog/commit/385c92f9dd0aa7e748fc677b2eeead5e3572685f).

#### 0.0.0

  * Initial release.