Skip to content

[Generated coverage] Certify strict support matrix, compatibility and cumulative delivery #232

Open

Description

@rodri-oliveira-dev

Parent and role

Final delivery/validation task for #227. Current main already contains generated nested/value-object materialization, typed property converters, GeneratedParameters and a bounded Native AOT smoke. #230 is closed and its implementation must not be repeated.

This issue validates remaining #228, #229 and #231 work, and transfers #230's unproven regression/TypeHandler boundary evidence to the appropriate roadmap.

Goal

Demonstrate exact runtime/generated/strict parity and publish a truthful coverage and compatibility contract, with a single cumulative PR and a justified future SemVer target. Candidate release target: v3.7.0, subject to the final SemVer/compatibility gate below.

Required support matrix

For each scenario show runtime, generated non-strict, strict-generated, Native AOT tested, and unsupported/limitations, with links to test evidence:

  • Mutable root / immutable constructor;
  • explicit ConstructUsing factory, including unsupported captures;
  • nested objects / component value objects / null children;
  • property converters, TypeHandler precedence and reflective adapter limitation ([3.8] Inventory reflection and dynamic-code boundaries for the AOT-safe subset #240);
  • parameterless commands / GeneratedParameters / new typed generated binder;
  • profile and isolated-runtime behavior;
  • renamed/reordered/safe-extra/missing/ambiguous reader columns;
  • null/DBNull, provider CLR conversions including current DateOnly/TimeOnly support.

No undocumented claim of full Native AOT support.

Cumulative verification

Docs and delivery

Out of scope

DoR

Acceptance

  • Matrix accurately separates supported/unsupported runtime, generated, strict and AOT-tested cases.
  • Newly supported paths have explicit equivalence, failure and (where claimed) AOT evidence.
  • No hidden strict fallback or unresolved material regression remains.
  • Existing API, provider and package contracts preserved unless change has an approved SemVer rationale.
  • 3.7.0 is explicitly justified as a MINOR increment over published 3.6.1, or an alternate version has a documented compatibility rationale and explicit approval before metadata changes.
  • Version sources, NuGet/assembly metadata, changelog, release notes, bilingual docs and release pipeline agree on the chosen version without creating any tag or publication.

DoD

  • Relevant full CI, package, PublicAPI, benchmark, provider, CodeQL/Sonar checks pass or unrelated limitations are documented.
  • Documentation reflects actual tested support and the TypeHandler risk tracked in [3.8] Inventory reflection and dynamic-code boundaries for the AOT-safe subset #240.
  • The cumulative PR includes release preparation for the SemVer-approved target (expected 3.7.0): canonical version values (including Directory.Build.props where relevant), package/release configuration, CHANGELOG.md, draft release notes and current-version references in EN/PT-BR documentation.
  • Verify the built package's version/dependency metadata and the release workflow's version resolution; no v3.7.0 tag, GitHub Release or NuGet publication occurs as part of roadmap implementation.
  • One cumulative PR merged to main, closing only current open roadmap issues.
  • No NuGet publication claimed until the separate governed release workflow completes.

Traceability

Existing converter work: closed #230; compatibility baseline: closed #294 / PR #298; reflection risk: #240; performance history: #219–#223.

Activity

  1. rodri-oliveira-dev commented on Oct 29, 2026

    @rodri-oliveira-dev
    OwnerAuthor

    Backlog handoff from #230 (2026-10-29)

    The core generated-conversion/TypeHandler-hardening work already exists on main (see closure evidence in #230). For the final generated-coverage certification:

    • Record implemented support for statically known IReadPropertyConverter<,> types; generated helpers invoke the converter directly, with contextual errors and runtime/generated parity tests.
    • Keep unsupported converter instances/delegates and other shapes clearly marked; generation can emit DFM011 and non-strict runtime fallback, while strict mode must not silently fall back.
    • Recheck converter precedence, null/DBNull, nested/value-object/profile scenarios and remaining negative tests against the published/implemented support boundary rather than re-implementing [3.6] Generate property conversion paths and harden TypeHandler interoperability #230.
    • Cross-link the reflection/Native AOT TypeHandlerCache<T>.Parse limitation in [3.8] Inventory reflection and dynamic-code boundaries for the AOT-safe subset #240, which now tracks that residual risk.
    • Update the stale 2.1.79 baseline in this roadmap's acceptance/testing material to the current [2.1.89,3.0.0) dependency contract.

    The 3.6.0 release is already published and 3.6.1 is prepared (not published as of the reviewed baseline); do not imply the unfinished generated-coverage roadmap shipped in 3.6.0.

    Source: #230, #294. Baseline: main 026fbcd26c48af0298ec4776ca5ac1659a2d676f.

  2. changed the title [-][3.6] Certify generated coverage, AOT evidence and release documentation[/-] [+][Generated coverage] Certify strict support matrix, compatibility and cumulative delivery[/+] on Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions