novolis-governance / imports-todo/frank-mapping.md
Import: `Frank.Mapping` → Novolis
Policies that keep the org coherent
dotnetgovernancenovolis
Source: D:\frankrepos\Frank.Mapping
What
| Package | Role |
|---|---|
Frank.Mapping | IMappingDefinition<TFrom,TTo>, fluent object mapping |
Frank.Mapping.Analyzers | Compile-time mapping diagnostics |
Frank.Mapping.Documents | Document-oriented mapping helpers |
Published on NuGet; no Frank.* production dependencies (BCL + JsonPath/XPath per README).
Consumers on disk: Frank.WorkflowEngine, Frank.ML.Domain.Legacy.
Why
- Not listed in frank-inventory.md P0 waves but is a dependency of planned imports (WorkflowEngine, ML Legacy).
- Replacing ad-hoc mapping in services reduces duplication across transports, storage DTOs, and ML pipelines.
- Analyzers fit Novolis quality bar (like
Novolis.Analyzers.AutoMapper).
How
Target
New repo: novolis-mapping (or facet under novolis-codegen if you want analyzers co-located — prefer standalone for non-Roslyn users).
| Novolis package | Frank source |
|---|---|
Novolis.Mapping | Frank.Mapping |
Novolis.Mapping.Analyzers | Frank.Mapping.Analyzers |
Novolis.Mapping.Documents | Frank.Mapping.Documents (optional wave 2) |
Port steps
- Bootstrap
novolis-mappingfromnovolis-template-dotnet,net10.0. - Rename namespaces; preserve public API where possible for low churn.
- Port analyzer tests; enable
Novolis.Documentation.props. - Publish
2026.1.*beforeFrank.WorkflowEngineport. - Update
frank-inventory.mdwith P1 row.
Sequencing
Wave 13 (proposed) — before WorkflowEngine.
Acceptance
- WorkflowEngine spike can reference
Novolis.Mappinginstead ofFrank.Mapping. - Zero
Frank.Mappingin Novolis production csproj after migration.