Releases: skuirrels/DomainMapper
Releases · skuirrels/DomainMapper
Release list
v1.2.1
Maintenance
- Updated GitHub Actions dependencies.
- Updated Meziantou.Analyzer to 3.0.162.
- Updated Meziantou.Polyfill to 1.0.160.
- Updated the NuGet package validation tool to 2.0.2.
Full Changelog: v1.2.0...v1.2.1
v1.2.0
Added
- Explicit
Replace,ClearAndFill, andAppendpolicies for existing-target collections. - Invocation-local reference preservation for shared and cyclic mutable object graphs.
- Closed-world runtime dispatch through generated
TryMapRuntimeandMapRuntimemethods. - Cached provider-neutral expression projections through the optional
DomainMapper.Projectionspackage. - Diagnostics
DMPR105throughDMPR107for unsupported tracking, projection, and registry declarations. - Incremental invalidation, concurrency, trimming, and native AOT validation fixtures.
Changed
- Incremental generator inputs are fingerprinted per mapper and reachable source contract, keeping isolated changes from invalidating unrelated mapper outputs.
- The 1.2 packages validate public API compatibility against the 1.1 release.
Fixed
- Reference tracking now distinguishes target contracts when one source instance participates in heterogeneous target shapes.
- Projection generation rejects failed mappings, custom delegates, and user-defined conversion calls while retaining pure lifted conversions.
- Runtime registries reject open-world interface ambiguity and value-type derived dispatch, handle nullable annotations, and exclude mappings whose deferred helpers fail.
- Incremental invalidation includes containing partial types and inherited mapper declarations that affect emitted source.
Full changelog: v1.1.0...v1.2.0
v1.1.0
Features
- Add explicit property and field bindings with validated nested source paths.
- Add computed target members, typed conditions, ordered completion hooks, and additional mapping parameters.
- Add target and source ignores, target allow-lists for updates, and configurable completeness policies.
- Add per-member null behavior and constant substitution.
- Add reusable mapping includes and bounded recursive mapping with generated depth guards.
Compatibility and performance
- Keep convention mapping property-only and compatible with DomainMapper 1.0; fields participate only when explicitly configured.
- Preserve the fast convention-only compiler path and cache Roslyn member metadata per compilation.
- Add diagnostics
DMPR102throughDMPR104for invalid configuration and completeness enforcement.
Full changelog: v1.0.0...v1.1.0
v1.0.0
DomainMapper 1.0.0
The first public release of DomainMapper, a compile-time .NET mapper with a domain-driven design bias.
Highlights
- Direct generated C# with no runtime reflection.
- Domain-owned constructors and static factories for invariant-preserving mappings.
- Mutable and immutable targets, records, nested objects, collections, and dictionaries.
- Existing-target updates plus nested and generic mapper support.
- Fail-closed diagnostics when a target cannot be mapped completely.
- Multi-Roslyn packaging for supported .NET compiler versions.
Install
dotnet add package DomainMapper --version 1.0.0Validation
- 57 unit and repository tests passed locally.
- Hosted build, test, package validation, integration tests for .NET 8, 9, 10 and .NET Framework, lint, CodeQL, and static analysis passed.
- The final NuGet artifact passed package validation before publication.