request/CHANGELOG.md

62 lines
2.6 KiB
Markdown
Raw Normal View History

# Changelog
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
2026-05-26 22:21:20 +02:00
## [1.0.0] - 2026-05-26
### Added
- **request.dispatcher:** Core mediator pattern implementation with async request/response handling
- **request.result:** Optional result wrapper types (`Result<T>`) for structured responses
- **request.validation:** Automatic validation pipeline behavior with FluentValidation integration
2026-05-28 22:05:56 +02:00
## [1.1.0] - 2026-05-28
### Added
- **request.validation:** Dependency injection support for validators via `IServiceCollection.AddValidation()`
- **request.validation:** `IValidatorBuilder` for fluent validator registration and assembly scanning
- **request.validation:** Support for open generic validators and automatic closing during resolution
- **request.validation:** `Validate<T>` extension method for simplified validator invocation
### Changed
- **request.dispatcher:** Reset type caches when reloading assemblies
- **request.validation:** Reset type caches when reloading assemblies
2026-05-30 19:53:00 +02:00
## [2.0.0] - 2026-05-30
2026-05-28 22:05:56 +02:00
2026-05-30 19:53:00 +02:00
## Breaking changes
To have a consistent experience across all packages, some public interfaces have been renamed.
2026-05-28 22:05:56 +02:00
### Changed
- **request.dispatcher:** Hide pipeline internals in stack frames
- **request.validation:** Rename `IValidatorBuilder` to `IRequestValidatorBuilder` incl. extensions methods
2026-05-30 19:53:00 +02:00
## [Unreleased]
### Added
- **request.validation:** Support `PropertyPath` JSON converter for string values and dictionary property names
2026-05-30 19:53:00 +02:00
### Changed
- **request.result:** Document that `Result`/`Result<T>` equality treats any two failures as equal, ignoring error content; branch on the `Error` directly for failure-specific logic (see PLAN.md Inconsistencies#E)
### Fixed
- **request.result:** Correct the namespace in the `Prelude` doc comment (`Geekeey.Extensions.Result``Geekeey.Request.Result`)
- **request.result:** Fold `IsSuccess` into `Result<T>.GetHashCode` to avoid collisions between a failure and a success value whose hash is `0`
- **request.validation:** Guard null comparison bounds in `GreaterThan`/`LessThan`/`Between` etc. so a `null` bound no longer throws (`NullReferenceException`)
- **request.validation:** Return no problems when validating a `null` instance of a reference type instead of dereferencing it (`NullReferenceException`)
### Removed
2026-05-26 22:21:20 +02:00
[1.0.0]: https://code.geekeey.de/geekeey/request/releases/tag/1.0.0
2026-05-28 22:05:56 +02:00
[1.1.0]: https://code.geekeey.de/geekeey/request/releases/tag/1.1.0
2026-05-30 19:53:00 +02:00
[2.0.0]: https://code.geekeey.de/geekeey/request/releases/tag/2.0.0
[Unreleased]: https://code.geekeey.de/geekeey/request/compare/2.0.0...HEAD