Releases: TimeWarpEngineering/timewarp-options-validation
Releases · TimeWarpEngineering/timewarp-options-validation
v1.0.0-beta.4
What's Changed
AOT and Trim Compatibility (Issue #7)
- Add
[DynamicallyAccessedMembers]attributes to eliminate IL2104/IL3053 warnings - Add
[RequiresUnreferencedCode]and[RequiresDynamicCode]attributes for transparent AOT support on configuration-binding overload - Mark assembly as AOT-compatible (
IsAotCompatible) and trimmable (IsTrimmable) - Remove AOT warning suppressions from Directory.Build.props
Notes
The AddFluentValidatedOptions<TOptions, TValidator>(IConfiguration) overload that uses configuration binding has inherent AOT limitations due to Microsoft's Bind<T>() using reflection. The attributes transparently communicate this to consumers.
For full AOT support, consumers can:
- Use
EnableConfigurationBindingGeneratorin their projects - Use the
AddFluentValidatedOptions<TOptions, TValidator>(Action<TOptions>)overload which is fully AOT-compatible
Full Changelog: v1.0.0-beta.3...v1.0.0-beta.4
v1.0.0-beta.3
Breaking Changes
- Renamed
SectionNameAttributetoConfigurationKeyAttributeto better align with Microsoft.Extensions.Configuration naming conventions - Migrated to .NET 10
- All files and directories now follow kebab-case naming convention (enforced by TWA001 analyzer)
Features
- Added fluent API for options validation configuration
- Modernized library structure following Nuru pattern
- Added TimeWarp.Build.Tasks and TimeWarp.SourceGenerators for enhanced build-time tooling
Improvements
- Replaced FluentAssertions with Shouldly for cleaner test assertions
- Updated to fixie 4.1.0 and TimeWarp.Fixie 3.1.0
- Simplified NuGet.config
- Restructured Directory.Build.props with proper separation (package settings in source/Directory.Build.props)
- Converted to .slnx solution format
- Updated CI/CD workflows for kebab-case directories
Package Information
- Package: TimeWarp.OptionsValidation
- Version: 1.0.0-beta.3
- License: Unlicense