Repository navigation
[release/11.0.1xx] Reject legacy AOT disable on CoreCLR - #12960
Conversation
Backport #12956 to release/11.0.1xx, capturing the explicitly disabled setting before Mono AOT defaults are applied. Preserve Mono and NativeAOT behavior and update diagnostics, docs, and configuration tests. Co-authored-by: Copilot App <[email protected]>
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The new condition breaks the repository’s documented profiled-AOT regeneration workflow unless its legacy property usage is migrated.
Review effort: Balanced
Findings: 1
What changed in this PR
Backports XA1044 handling for explicitly disabled legacy AOT on CoreCLR.
Changes:
- Captures
RunAOTCompilation=falsebefore defaults are applied. - Adds diagnostics, documentation, and regression tests.
- Preserves MonoVM and NativeAOT handling.
| File | Description |
|---|---|
Xamarin.Android.Common.targets |
Emits the new XA1044 diagnostic. |
InvalidConfigTests.cs |
Tests runtime and AOT property combinations. |
Resources.resx |
Adds the localized diagnostic. |
Resources.Designer.cs |
Exposes the generated resource property. |
Microsoft.Android.Sdk.DefaultProperties.targets |
Captures explicit legacy AOT disablement. |
xa1044.md |
Documents XA1044 behavior and resolution. |
build-properties.md |
Documents updated AOT property semantics. |
Files not reviewed (1)
- src/Xamarin.Android.Build.Tasks/Properties/Resources.Designer.cs: Generated file
CoreCLR test projects formerly set RunAOTCompilation=false through AotAssemblies and per-ABI test setup. With XA1044 rejecting that legacy property, these fixtures fail before reaching the behavior they test. Omit Mono AOT settings for CoreCLR, retaining intentional invalid-configuration coverage and existing ReadyToRun defaults. Co-authored-by: Copilot App <[email protected]>
|
@dalexsoto review |
|
@dalexsoto review |
dalexsoto
left a comment
There was a problem hiding this comment.
The backport captures explicit RunAOTCompilation=false before CoreCLR's defaults and reports XA1044 with the correct PublishReadyToRun=false guidance. The complete current change preserves MonoVM and NativeAOT handling, migrates affected callers, and keeps diagnostic resources, generated accessors and documentation aligned. No current blocking issue remains; the accepted Mono-only profiled-AOT workflow is non-blocking.

Backport of #12956 to
release/11.0.1xx.The release branch retains Mono AOT defaults, so capture an explicitly disabled
RunAOTCompilationon CoreCLR before those defaults are applied. Report XA1044 with guidance to setPublishReadyToRun=false; preserve existing Mono and NativeAOT behavior. Update the diagnostic, documentation, and configuration tests. No prerequisite commits were needed.Validation: 18 targeted MSBuild property evaluations passed across CoreCLR, MonoVM, NativeAOT, ReadyToRun, legacy AOT, and LLVM; XML/resource parsing and
git diff --checkpassed. Full integration tests could not be run locally because this checkout lacks the required Java/Android build prerequisites.