Skip to content

[Blazor] Validate component metadata under Native AOT - #68302

Draft
javiercn wants to merge 1 commit into
javiercn-framework-component-metadatafrom
javiercn-aspire-dashboard-aot-strict-proof
Draft

[Blazor] Validate component metadata under Native AOT#68302
javiercn wants to merge 1 commit into
javiercn-framework-component-metadatafrom
javiercn-aspire-dashboard-aot-strict-proof

Conversation

@javiercn

@javiercn javiercn commented Aug 9, 2026

Copy link
Copy Markdown
Member

Summary

Layer 6 of 6 for Aspire Dashboard Native AOT support. Depends on #68300.

  • disable the STJ, component metadata, and JS-invokable reflection fallbacks in the strict feature application
  • promote incomplete generated component metadata to build errors when reflection is disabled
  • propagate strict Native AOT settings through the existing testing harness and treat ILC warnings as errors
  • remove unsupported, unexercised HTTP form mapping only from the strict proof image through a test-asset ILC substitution; this does not add or claim Native AOT form-mapping support
  • run the existing layer-4 feature matrix and layer-5 framework roots unchanged

This PR is strict proof only: it adds no product scenario, product fix, provider, or root. There is no second matrix commit because strict execution requires only the project/target wiring in the single proof commit; no scenario source changed. The intentional JitDefault reflection-compatibility witness remains JIT-only.

Validation

  • clean full repository build: succeeded with 0 warnings and 0 errors in 15:20
  • affected unit and generator suites: 3,592 passed, 8 skipped across JSInterop, Components, Web, Forms, Endpoints, Server, Authorization, QuickGrid, Media, WebAssembly, WebAssembly Server, WebAssembly Authentication, and the metadata generator
  • JIT feature matrix: 22/22 passed
  • JIT default-reflection fallback witness: 1/1 passed
  • strict Native AOT publish: 0 compiler/ILC warnings, 0 errors
  • strict Native AOT feature matrix: 21/21 passed
  • final PR2-cascade sanity: metadata generator 116/116 passed; strict Native AOT publish 0 warnings, 0 errors

The full build used C:\Nuget\microsoft.wix\6.0.3-dotnet.6\tools\net6.0\any on PATH. The initial WiX WIX0001 was environmental: App.Ref correctly stages Microsoft.Extensions.Configuration.Binder.SourceGeneration.dll from Microsoft.Internal.Runtime.AspNetCore.Transport, but this worktree gives the staged payload a 259-character absolute path and WiX native reports it as missing. Building App.Ref from a short R: mapping succeeded and proved the owner graph/output. The final clean full build used that short mapping plus an isolated copy of the selected VS MSBuild with the SDK's exact net472 NuGet task dependencies; Common7, VC, and managed rule-set directories remained junctioned to the installed VS instance. No source or project file was changed for the workaround.

Donor remainder audit

Audited cumulative final parent 58a0cfee0109e9f8313905d0b868fb3a84874fdb plus this PR against frozen source c7f68e2bdcc266063545aae1b45335e0d5bdc758 / tree de914584c9e52969b921e3e3195a8ce4edac2678 after the final PR2 CI-fix cascade restack.

  • remaining donor differences are approved redesigns/equivalents, primarily per-host JSON resolver isolation, incremental generator/context slicing, and explicit lower-layer repairs
  • strict runtime switches and fail-fast behavior are already represented in lower layers
  • the PR2 MTP test-project fix remains parent-identical in this PR
  • this PR contains the complete strict-only remainder
  • accidental owner-layer omissions: none

@javiercn
javiercn force-pushed the javiercn-aspire-dashboard-aot-strict-proof branch from 14cc38b to 7f60778 Compare August 9, 2026 19:46
Disable the STJ, component metadata, and JS-invokable reflection fallbacks in the strict feature app, promote incomplete generated metadata to errors, and require ILC warnings as errors. Keep unsupported HTTP form mapping outside the proof image through a strict-test-only substitution.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@javiercn
javiercn force-pushed the javiercn-aspire-dashboard-aot-strict-proof branch from 7f60778 to 7274404 Compare August 9, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant