# Change Log All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog] and this project adheres to [Semantic Versioning]. [Keep a Changelog]: http://keepachangelog.com/ [Semantic Versioning]: http://semver.org/ ## [Unreleased] ### Added ### Fixed ### Changed ### Removed # 5.2.0 [2025-10-25] ### Added - `applySkips` function for skipping entire test trees with individual test visibility - Traverses test trees and replaces tests with skipped placeholders - Shows each test as `[SKIPPED]` in yellow when skip condition is met - Useful for platform-specific test suites with `Flavored (IO TestTree)` - Preserves test group structure while showing which tests would run - Comprehensive platform expression tests covering all operators and edge cases - Added tests for `!darwin`, `!mingw32`, `!unix` negations - Added tests for complex AND/OR expressions - Added tests for edge cases like unknown platforms (freebsd) ### Changed - Migrated release process to tag-triggered workflow - Release workflow now triggers when version tags (e.g., v5.2.0) are pushed - Removed automatic tag creation from CI - Updated release documentation to reflect tag-based process - `--inplace` option now only overwrites file if content has changed - Prevents unnecessary file modification timestamps - Reduces build system churn when generated file is identical # 5.1.0 [2025-08-10] ### Added - Assertion newtype wrapper for HUnit-style assertions with comprehensive documentation and examples (see #74) - Platform-specific test examples and documentation showing skip/platform usage (see #69) - Support for GHC 9.12.2 in tested configurations (see #53) - Reproduction test for symlink crash issue (see #38) - New `--no-main` option for generating modules without main function (see #54) - Support for custom tests with `Tasty` instances using `tasty_` prefix - New `TastyInfo` type providing access to test metadata in custom tests - **`Flavored` type**: General-purpose mechanism for transforming `TestTree`s generated by `tasty_` functions - Allows applying transformations like skipping, timeouts, metadata, grouping, etc. - Extensible design with `flavoring :: TestTree -> TestTree` transformation function - Integrates seamlessly with custom test types through `Tasty` instances - **Skip test functionality**: Added `SkipTest` option type and `skip` function - `SkipTest` newtype with `IsOption` instance for Tasty options - `skip :: TestTree -> TestTree` function to skip any test tree - Skipped tests show as `[SKIPPED]` in yellow in test output - Works with `Flavored` type for advanced skip patterns - Comprehensive documentation for all test type variations - Step-by-step testing support for HUnit tests - IO-based test generation for TestTrees - AI development guidelines in AI_GUIDELINES.md - Comprehensive coding style guide in CODING_STYLE.md - Multiline block comment handling in test discovery (resolves #10) ### Fixed - Fixed backup file import generation bug - prevents `.hs.orig` and `.hs.bak` files from being processed (see #58) - Fixed directory handling in glob patterns - directories are now filtered out when using `--modules` flag (resolves #12) - Fixed HLint warnings in generated code - Fixed warnings in Generator.hs and added Unsafe.hs module - Fixed broken links in documentation - Fixed test discovery incorrectly finding tests inside `{- -}` block comments (resolves #10) ### Changed - Enhanced documentation for skip and platform guidance (see #72) - Cleaned up cabal file configuration - Improved test discovery patterns from `*.hs*` to `*.hs` to avoid backup files - Enhanced documentation with more test type examples - Added regression tests for backup file handling and directory filtering - Added preprocessing step to remove block comments before test discovery - Enhanced test discovery with proper nested block comment support ### Removed - Removed `project.sh` build script # 5.0.0 [2022-07-08] - Fix tasty-hedgehog `testProperty` deprecation warning # 4.2.4 [2022-05-22] - Support for custom test libraries - Version module - Deduplicate imports in generated code - Rename library directory to src - Move existing library modules to Test.Discover.Internal # 4.2.3 [2022-05-21] - Added `--search-dir DIR` option - Adds an `--in-place` flag to write the generated driver to the source file. # 4.2.1 [2018-06-06] ## Changed - Migrated source code hosting to https://git.coop/lwm/tasty-discover. # 4.2.0 [2018-03-03] ## Fixed - Actually support `scprop_` prefixed SmallCheck test cases (see issue [#140]). [#140]: https://github.com/lwm/tasty-discover/issues/140 # 4.1.5 [2018-02-26] ## Fixed - Fixed multi-byte string issue (see pull request [#138]). [#138]: https://github.com/lwm/tasty-discover/pull/138 # 4.1.4 [2018-02-25] ## Added - Windows OS continuous integration build (see pull request [#136]). ## Fixed - Test failure related to path handling on Windows OS (see pull request [#136]). - Resolved upstream tasty-hedgehog nightly blocking issue (see issue [#131]). [#136]: https://github.com/lwm/tasty-discover/pull/136 [#131]: https://github.com/lwm/tasty-discover/issues/131 # 4.1.3 [2018-01-01] ## Fixed - Re-enable on Stackage due to tasty/tasty-hedgehog failure (see issue [#132]). [#132]: https://github.com/lwm/tasty-discover/pull/132 # 4.1.2 [2017-12-19] ## Fixed - Escaping issues for the Windows platform (see issue [#124]). [#124]: https://github.com/lwm/tasty-discover/issues/124 # 4.1.1 [2017-09-26] ## Fixed - Incorrect test case doing bad comparison (see issue [#123]). [#123]: https://github.com/lwm/tasty-discover/issues/123 # 4.1.0 [2017-09-26] ## Fixed - Find tests recursively in test directory. (see pull request [#122]). ## Added - Add ability to override tasty arguments (see pull request [#120]). [#120]: https://github.com/lwm/tasty-discover/pull/120 [#122]: https://github.com/lwm/tasty-discover/pull/122 # 4.0.0 [2017-09-01] ## Changed - Deprecated `--[no-]module-suffix` for `--modules` (see pull request [#117]). - Deprecated `--ignore-module` for `--ignores` (see pull request [#117]). ## Added - `tasty-hedgehog` is now a supported test library. ## Removed - `case_` prefixes have been removed. [#117]: https://github.com/lwm/tasty-discover/pull/117 # 3.0.2 [2017-06-05] ### Fixed - Make upper bounds for dependencies looser. - Fix typo in README.md option documentation. ### Remove - Remove TOC, the hyperlinks weren't working on Hackage. # 3.0.1 [2017-06-04] ### Fixed - Fixed CHANGELOG.md rendering for Hackage (see pull request [#106]). ### Added - Add missing --tree-display documentation note (see pull request [#107]). [#107]: https://github.com/lwm/tasty-discover/pull/107 [#106]: https://github.com/lwm/tasty-discover/pull/106 # 3.0.0 [2017-06-03] ### Added - Add --tree-display configuration option (see pull request [#103]). ### Changed - Deprecate `case_` in favour of `unit_` for HUnit test cases (see pull request [#97]). ### Fixed - Correctly handle sub-directories when using --no-module-suffix (see pull request [#102]). [#97]: https://github.com/lwm/tasty-discover/pull/97 [#102]: https://github.com/lwm/tasty-discover/pull/102 [#103]: https://github.com/lwm/tasty-discover/pull/103 # 2.0.3 [2017-04-13] ### Fixed - Make the Cabal description more clear for Hackage. # 2.0.2 [2017-04-13] ### Added - README.md and CHANGELOG.md included for Hackage (see pull request [#96]). - Re-add stylish-haskell automated checking (see pull request [#88]). [#88]: https://github.com/lwm/tasty-discover/pull/88 [#96]: https://github.com/lwm/tasty-discover/pull/96 ## 2.0.1 [2017-03-18] ### Fixed - Fix flaky test comparison (see pull request [#86]). [#86]: https://github.com/lwm/tasty-discover/pull/86 ### Removed - Remove the Test.Tasty.Type module (see pull request [#83]). [#83]: https://github.com/lwm/tasty-discover/pull/83 ## 2.0.0 [2017-03-15] ### Added - Add new hpack format. - Add generator style test discovery from tasty-auto. - Add new configuration options: debug, ingredients and module name. - Add unit tests for all functionality. ### Fixed - Re-license to MIT. ### Removed - RTD documentation. - TemplateHaskell dependency - Example project and integration test project. ### Changed - Move all tests into test folder. ## 1.1.0 [2017-01-19] ### Added - Add --ignore-module configuration option. ## 1.0.1 [2017-11-13] ### Added - Add Cabal and Documentation testing on Travis CI. ### Fixed - Include missing extra-source-files. - Slim down LICENSE.md and mark as GPL-3 in Cabal file. ## 1.0.0 [2016-11-04] ### Added - Add documentation on RTD. - Release on Hackage and Stackage. ## 0.0.3 [2016-09-20] ### Added - --no-module-suffix configuration option. ## 0.0.2 [2016-02-20] ### Added - --module-suffix configuration option. ## 0.0.1 [2016-02-13] - tasty-discover initial release.