packages feed

tasty-discover-5.2.0: CHANGELOG.md

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