hedgehog-1.0: CHANGELOG.md
## Version 1.0 (2019-05-13)
- Add histograms to labels / coverage ([#289][289], [@jacobstanley][jacobstanley])
- Improved shrinking of lists ([#276][276], [@jacobstanley][jacobstanley] / [@edsko][edsko])
- Simplify `MonadGen`, this breaks the use of `StateT` on the outside of a `GenT` for the time being, it still works fine on the inside though and you can use `distributeT` to run it ([#276][276], [@jacobstanley][jacobstanley])
- Change `Applicative` `GenT` to use zipping ([#272][272], [@jacobstanley][jacobstanley] / [@edsko][edsko])
- Rename `Tree` -> `TreeT`, `Node` -> `NodeT` ([#272][272], [@jacobstanley][jacobstanley])
- `diff` function which takes any `a -> a -> Bool` comparison function ([#196][196], [@chessai][chessai] / [@jacobstanley][jacobstanley])
- Labelling of test runs via `label`, `collect` ([#262][262], [@ruhatch][ruhatch] / [@jacobstanley][jacobstanley])
- Classification of test runs via `cover`, `classify` ([#253][253], [@felixmulder][felixmulder] / [@jacobstanley][jacobstanley])
- Define proper `Applicative` instances for `NodeT`, `TreeT` and `GenT` ([#173][173][@sjakobi][sjakobi]
- `MonadFail` instance for `PropertyT` ([#267][267], [@geigerzaehler][geigerzaehler])
- `MonadResource` instance for `PropertyT` ([#268][268], [@geigerzaehler][geigerzaehler])
- Example for the `tripping` function ([#258][258], [@HuwCampbell][HuwCampbell])
- Improve documentation for state machine testing ([#252][252], [@endgame][endgame])
- `runTests` function for running tests from a top level executable, this was later renamed to `defaultMain` as is the de facto convention ([#168][168], [@erikd][erikd])
- Show output variables when parallel state machine testing fails to linearise ([#235][235], [@HuwCampbell][HuwCampbell])
- Note about `enumBounded` danger ([#202][202], [@thumphries][thumphries])
- Expose `discoverPrefix` to find prefixed properties ([#229][229], [@ruhatch][ruhatch])
- Remove use of `unix` package and replace with `lookupEnv` ([#226][226], [@puffnfresh][puffnfresh])
## Version 0.6.1 (2018-09-22)
- Fix UTF-8 related rendering bugs on Windows ([#218][218], [@moodmosaic][moodmosaic])
- Verify that our SplitMix/Seed avoids pathological γ-values ([#207][207], [@moodmosaic][moodmosaic])
- Avoid weak gamma values in Hedgehog.Internal.Seed ([#198][198], [@moodmosaic][moodmosaic])
## Version 0.6 (2018-05-14)
- Pass [Dieharder][Dieharder] statistical/randomness tests ([#185][185], [@moodmosaic][moodmosaic])
- Catch `readFile` exceptions on the repl ([#184][184], [@thumphries][thumphries])
## Version 0.5.3 (2018-03-12)
- Add `Semigroup` and `Monoid` instances for `GenT` that lift the inner `Monoid` ([#156][156], [@andrewthad][andrewthad])
- `Gen.unicode` no longer generates non-characters ([#154][154], [@johnchandlerburnham][johnchandlerburnham])
- Documentation improvements ([#162][162], [@fisx][fisx])
- Documentation fixes ([#157][157], [@dredozubov][dredozubov])
## Version 0.5.2 (2018-02-05)
- Add doc explaining use of `withTests 1` ([#134][134], [@chris-martin][chris-martin])
- Explicitly define `Semigroup` instance for `Summary` ([#142][142], [@gwils][gwils])
- Depend on `semigroups` ([#140][140], [@LightAndLight][LightAndLight])
- Support `transformers-0.4` ([#150][150], [@gwils][gwils])
## Version 0.5.1 (2017-12-06)
- Only invoke `setNumCapabilities` when using the `-threaded` runtime ([#130][130], [@ekmett][ekmett])
- Correct `mixGamma` oddness check ([#124][124], [@markhibberd][markhibberd])
## Version 0.5 (2017-07-16)
- Parallel state machine testing, allows detection of commands which are not-atomic ([#98][98], [@jacobstanley][jacobstanley])
- Easier to use variables for state machine testing ([#94][94], [@jacobstanley][jacobstanley])
- `MonadGen` class allows the use of transformers like `ReaderT` and `StateT` on the outside of generators ([#99][99], [@jacobstanley][jacobstanley])
- Better error messages for tests which throw exceptions ([#95][95], [@jacobstanley][jacobstanley])
- Separated test input generation and assertions in to `PropertyT` and `TestT` respectively, this allows `TestT` to have a `MonadBaseControl` instance ([#96][96], [@jacobstanley][jacobstanley])
- This document grew links to the pull requests which introduced various changes ([#93][93], [@moodmosaic][moodmosaic])
## Version 0.4.1 (2017-06-28)
- Fixed runtime type error that could occur when shrinking state machine commands ([#91][91], [@jacobstanley][jacobstanley])
## Version 0.4 (2017-06-28)
- Abstract state machine testing, check out Tim Humphries' great [blog post](http://teh.id.au/posts/2017/07/15/state-machine-testing) or the [process registry example](https://github.com/hedgehogqa/haskell-hedgehog/blob/master/hedgehog-example/test/Test/Example/Registry.hs) to see how it works ([#89][89], [@jacobstanley][jacobstanley])
- `liftCatch`, `liftCatchIO`, `withCatch` functions for isolating exceptions during tests ([#89][89], [@jacobstanley][jacobstanley])
## Version 0.3 (2017-06-11)
- Exponential range combinators ([#43][43], [@chris-martin][chris-martin])
- Roundtrip example, check out the [blog post](http://teh.id.au/posts/2017/06/07/round-trip-property/) ([#85][85], [@thumphries][thumphries])
- `tripping` now displays intermediate value ([#85][85], [@jacobstanley][jacobstanley])
- `distribute` function for pulling a transformer out to the top level ([#83][83], [@jacobstanley][jacobstanley])
- `withExceptT` function for executing tests with an inner `ExceptT` (e.g. `Test (ExceptT x m) a`) ([#83][83], [@jacobstanley][jacobstanley])
## Version 0.2.2 (2017-05-16)
- Fixed scope of `unicode` character generators ([#76][76], [@moodmosaic][moodmosaic])
- Widen version bounds for some dependencies ([#80][80], [@amarpotghan][amarpotghan])
- Expose test modules to fix build on nix / hydra ([#78][78], [@amarpotghan][amarpotghan])
- Fixes for GHC 8.2 RC2 ([#77][77], [@erikd][erikd])
## Version 0.2.1 (2017-05-09)
- Added `ascii`, `latin1`, `unicode` character generators ([#73][73], [@jacobstanley][jacobstanley])
## Version 0.2 (2017-05-06)
- Added a quiet test runner which can be activated by setting `HEDGEHOG_VERBOSITY=0` ([@jacobstanley][jacobstanley])
- Concurrent test runner does not display tests until they are executing ([@jacobstanley][jacobstanley])
- Test runner now outputs a summary of how many successful / failed tests were run ([@jacobstanley][jacobstanley])
- `checkSequential` and `checkParallel` now allow for tests to be run without Template Haskell ([@jacobstanley][jacobstanley])
- Auto-discovery of properties is now available via `discover` instead of being baked in ([@jacobstanley][jacobstanley])
- `annotate` allows source code to be annotated inline with extra information ([@jacobstanley][jacobstanley])
- `forAllWith` can be used to generate values without a `Show` instance ([@jacobstanley][jacobstanley])
- Removed uses of `Typeable` to allow for generating types which cannot implement it ([@jacobstanley][jacobstanley])
[Dieharder]:
https://webhome.phy.duke.edu/~rgb/General/dieharder.php
[jacobstanley]:
https://github.com/jacobstanley
[chris-martin]:
https://github.com/chris-martin
[thumphries]:
https://github.com/thumphries
[moodmosaic]:
https://github.com/moodmosaic
[amarpotghan]:
https://github.com/amarpotghan
[erikd]:
https://github.com/erikd
[ekmett]:
https://github.com/ekmett
[markhibberd]:
https://github.com/markhibberd
[gwils]:
https://github.com/gwils
[LightAndLight]:
https://github.com/LightAndLight
[johnchandlerburnham]:
https://github.com/johnchandlerburnham
[andrewthad]:
https://github.com/andrewthad
[dredozubov]:
https://github.com/dredozubov
[fisx]:
https://github.com/fisx
[puffnfresh]:
https://github.com/puffnfresh
[ruhatch]:
https://github.com/ruhatch
[HuwCampbell]:
https://github.com/HuwCampbell
[endgame]:
https://github.com/endgame
[geigerzaehler]:
https://github.com/geigerzaehler
[sjakobi]:
https://github.com/sjakobi
[felixmulder]:
https://github.com/felixmulder
[edsko]:
https://github.com/edsko
[289]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/289
[276]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/276
[272]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/272
[268]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/268
[262]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/262
[258]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/258
[253]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/253
[252]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/252
[235]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/235
[229]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/229
[226]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/226
[218]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/218
[207]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/207
[202]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/202
[198]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/198
[185]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/185
[184]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/184
[168]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/168
[162]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/162
[157]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/157
[156]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/156
[154]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/154
[150]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/150
[142]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/142
[140]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/140
[134]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/134
[130]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/130
[124]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/124
[99]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/99
[98]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/98
[96]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/96
[95]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/95
[94]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/94
[93]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/93
[91]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/91
[89]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/89
[85]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/85
[83]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/83
[80]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/80
[78]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/78
[77]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/77
[76]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/76
[73]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/73
[43]:
https://github.com/hedgehogqa/haskell-hedgehog/pull/43