Releases: ZeroAlloc-Net/ZeroAlloc.Mapping
Releases · ZeroAlloc-Net/ZeroAlloc.Mapping
Release list
v1.6.0
v1.5.0
v1.4.1
v1.4.0
1.4.0 (2026-05-10)
Features
- bench: add AutoMapper profile (9cb6eac)
- bench: add hand-written baseline mappers (d3bb876)
- bench: add Mapperly mapper definitions (381b781)
- bench: add shared model fixtures (58873de)
- bench: add ZeroAlloc.Mapping mapper definitions (76baee7)
- bench: Collection scenario (40fed2c)
- bench: FlatConversion scenario (6873a35)
- bench: FlatIdentity scenario (ed18d4d)
- bench: Flattening scenario (f532c09)
- bench: import-benchmarks.ps1 splices BDN results into performance.md (f138ea1)
- bench: parity check across all four mappers (bde4d0e)
- bench: Polymorphic scenario (1c0f7a0)
- bench: restore string→int Parse coverage to ConvSrc (9bfbf76)
- bench: TryMap scenario (547b896)
- bench: UpdateInPlace scenario (6a485e1)
Bug Fixes
- bench: drop misleading TryMap try/catch wrap; align Sanity input with bench (7347d74)
- bench: import script — strip full project prefix in title, fix
${timestamp}braces, retry locked file writes (002573a) - bench: order import-benchmarks output by narrative, not alphabet (dcb609e)
Documentation
- performance: add Benchmarks section with sentinels (6330509)
- performance: caveats, AutoMapper licensing, FlatIdentity noise note (b2c2f44)
- performance: import first benchmark run (5fab55a)
- performance: re-import after TryMap source fix and narrative-ordering script (848aa44)
- plans: benchmark harness design + implementation plan (0efd159)
v1.3.1
1.3.1 (2026-05-09)
Documentation
- advanced: MappingError tree + Result integration + edge cases (a63416e)
- basic-mapping: property matching + 5 conversion paths + customisation (3d9a24a)
- basic-mapping: replace non-existent [StrictDestinationMapping] with real [StrictSourceMapping] (b2dade4)
- collections: auto-emitted overloads + nested-element + [SkipCollectionOverloads] (9be42a0)
- cookbook: 01 command-to-domain with smart-ctor OrderId (8ac2f79)
- cookbook: 02 domain-to-dto with [ReverseMap] (c231d46)
- cookbook: 03 fallible mapping with smart-ctor value objects (f4ef2d2)
- cookbook: 04 flattening nested DTOs (!. vs ?. chain rules) (1c172a9)
- cookbook: 05 polymorphic domain hierarchies (PaymentMethod example) (9e7bef3)
- cookbook: 06 collection pipelines + EF Core update-in-place (db3dffb)
- cookbook: match recipe 05 dispatcher message to snapshot verbatim (f240ec9)
- culture-and-strict: [MappingCulture] + [StrictSourceMapping] + [CaseInsensitiveMapping] (953065f)
- diagnostics: ZAMP001-016 reference with trigger + fix examples (7af2c3d)
- flattening: dotted [MapProperty] paths + null-handling rules + ZAMP005 (95a346e)
- getting-started: 5-minute install + first mapping walkthrough (03a5449)
- hooks: [BeforeMap]/[AfterMap] + variance + TryMap error-code split (2ad97f5)
- hooks: quote frontmatter description starting with [ — YAML parser fix (6674ba4)
- index: replace v1 placeholder with full Docusaurus index (3e980fa)
- performance: zero-alloc internals + allocation-budget table + AOT (63984ec)
- plans: website docs launch design — full Mediator-parity doc set + submodule wiring (7b6826c)
- plans: website docs launch implementation plan — 25 tasks across 7 phases (b0c5964)
- polymorphic: switch dispatcher + ZAMP013/014/015 + degenerate-pair guard (2152153)
- reverse-mapping: [ReverseMap] desugar + ZAMP009 safety guard (1af7412)
- testing: snapshot pattern + allocation gates + generator harness (ccdaae1)
- update-in-place: void Map(TSrc, TDst) overload + ZAMP012 (5a7721b)
- website launch — Mediator-parity doc set (14 pages + 6 cookbook) (eb919ea)
v1.3.0
1.3.0 (2026-05-08)
Features
- generator: auto-emit 4 collection overloads per [Map<,>] (9803d71)
- generator: auto-emit 4 fallible collection overloads per [TryMap<,>] (65c6c13)
- generator: ZAMP016 detects duplicate [MappingCulture] across partial parts (d7f5b11)
- runtime: [SkipCollectionOverloads] opt-out marker + model wiring (117879d)
- v1.3 — auto-collection overloads + ZAMP016 (0a10cd9)
Bug Fixes
- generator: polymorphic-pair guard + tighten TryMap skip-overloads test (c32a960)
Documentation
- backlog: prune items graduated into v1.3 (B8, B15) (f89014b)
- plans: v1.3 design — B8 auto-collection overloads + B15 ZAMP016 (3c674cf)
- plans: v1.3 implementation plan — 7 tasks across 4 phases (3359c3a)
Tests
- certify: allocation budgets + AOT smoke for v1.3 collection overloads (2f1024a)
v1.2.0
1.2.0 (2026-05-08)
Features
- generator: [MappingCulture] class marker overrides InvariantCulture default (fa09915)
- generator: [PolymorphicMap<,>] / [PolymorphicTryMap<,>] dispatchers + ZAMP013/014/015 (b311feb)
- generator: update-in-place void-overload Map(TSrc, TDst) + ZAMP012 (25fd4fc)
- v1.2 — update-in-place, [MappingCulture], polymorphic dispatch (4f12c66)
Bug Fixes
- generator: PropertyMatcher walks inheritance chain for inherited properties (ca71366)
- generator: update-in-place handles dotted flattening + mixed-settability ZAMP012 (8c183fc)
Code Refactoring
- generator: cleanups + ZAMP015 false-positive fix from final review (6b06f6f)
Documentation
- backlog: B15 — duplicate [MappingCulture] across partial parts (v1.3 candidate) (86fecf7)
- backlog: prune items graduated into v1.2 (B2, B5, B9) (09d6bbb)
- plans: v1.2 design — B5 update-in-place, B9 MappingCulture, B2 polymorphic (01da16e)
- plans: v1.2 implementation plan — 6 tasks across 6 phases (bf5bf8d)
Tests
- certify: allocation budgets + AOT smoke + reflection tests for v1.2 features (65547bf)
v1.1.0
1.1.0 (2026-05-08)
Features
- generator: hook param matching uses Compilation.ClassifyConversion (assignable-from) (7f3ba06)
Bug Fixes
- generator: explicit [MapProperty] rename overrides [Obsolete] auto-skip (1d225c2)
- generator: hook exceptions in [TryMap] surface as mapping.hook.threw (df4a671)
- post-v1 review follow-ups (hook variance, hook.threw code, Obsolete+rename, +tests) (4a41344)
Tests
v1.0.0
1.0.0 (2026-05-07)
Features
- certify: AOT smoke + allocation gate (lifted from Authorization pattern) (d6a92f0)
- generator: [BeforeMap] / [AfterMap] hooks emitted inline (396d922)
- generator: [CaseInsensitiveMapping] opt-in + ZAMP011 ambiguity guard (52bfec1)
- generator: [MapProperty] flattening via dotted source path + ZAMP005 segment-walk (271e974)
- generator: [MapProperty]/[MapValue]/[MapperIgnore{Source,Target}] support (693326a)
- generator: [ReverseMap<,>] desugars to bidirectional [Map<,>] + ZAMP009 guard (bad1b85)
- generator: [StrictSourceMapping] opt-in + ZAMP010 unconsumed-source diagnostic (1ba7c60)
- generator: [TryMap] emission with try/catch + tree-recursive MappingError (0b5fea8)
- generator: collection-element loop + nested-mapper chain (9f8ae68)
- generator: conversion resolver — cast, ctor, Parse, static factory (7786cc3)
- generator: diagnostics ZAMP001-ZAMP008 + clean-source negative-control (615353b)
- generator: discover [Map<,>]/[TryMap<,>] classes + stub emission (f4f20b0)
- generator: flat [Map] emission via primary-ctor + property matcher (aca5483)
- generator: silent skip of [Obsolete] source/destination members (d7d0eb0)
- runtime: [MapProperty] / [MapValue] / [MapperIgnore{Source,Target}] (37b7e16)
- runtime: generic [Map<,>] and [TryMap<,>] class-level attributes (d493ed9)
- runtime: MappingError record struct with tree-recursive Children (589e1fb)
- v1.0.0 scaffold + runtime + generator + AOT gate (3467626)
Bug Fixes
- generator: hooks fire only when source/destination types match (7f071d3)
- generator: ZAMP011 message accuracy + skip [Obsolete] in ambiguity scan (48c4563)
Code Refactoring
- generator: IsObsolete uses Name+namespace check; add ZAMP001 negative-control test (3d847f1)
Documentation
- backlog: prune items graduated into v1 (B1, B4, B10, B12, B13, B14) (6a3afe0)
- backlog: seed B1-B14 deferred-from-v1 items with graduation signals (5b6d348)
- plans: v1 extensions design — B1, B4, B10, B12, B13, B14 (98d1cc7)
- plans: v1 extensions implementation plan — 9 tasks across 9 phases (72d48f7)
- plans: zeroalloc.mapping design (c152559)
- plans: zeroalloc.mapping v1 implementation plan (f69e2ae)
Tests
- certify: allocation budgets + AOT smoke for v1 extensions (7521345)