Skip to content

Releases: skuirrels/DomainMapper

v1.2.1

Choose a tag to compare

@github-actions github-actions released this 20 Aug 15:42
187ef20

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

Choose a tag to compare

@github-actions github-actions released this 15 Aug 10:59
e53a7e8

Added

  • Explicit Replace, ClearAndFill, and Append policies for existing-target collections.
  • Invocation-local reference preservation for shared and cyclic mutable object graphs.
  • Closed-world runtime dispatch through generated TryMapRuntime and MapRuntime methods.
  • Cached provider-neutral expression projections through the optional DomainMapper.Projections package.
  • Diagnostics DMPR105 through DMPR107 for 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

Choose a tag to compare

@github-actions github-actions released this 15 Aug 07:06
a73afe7

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 DMPR102 through DMPR104 for invalid configuration and completeness enforcement.

Full changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@skuirrels skuirrels released this 14 Jul 21:15
0465425

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

Validation

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