Skip to content

Track AndroidManifestOverlay changes in _ManifestMerger#11007

Merged
jonathanpeppers merged 6 commits intodotnet:mainfrom
Redth:fix-manifest-overlay-incremental
Mar 24, 2026
Merged

Track AndroidManifestOverlay changes in _ManifestMerger#11007
jonathanpeppers merged 6 commits intodotnet:mainfrom
Redth:fix-manifest-overlay-incremental

Conversation

@Redth
Copy link
Member

@Redth Redth commented Mar 24, 2026

Summary

  • include @(AndroidManifestOverlay) in _ManifestMerger incremental inputs
  • track the built-in timing overlay in the same incremental path
  • add a regression test that updates only an overlay file and verifies _ManifestMerger reruns

Testing

  • dotnet test src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Xamarin.Android.Build.Tests.csproj --filter "OverlayManifestTest|OverlayManifestIncrementalBuildTest" --logger "console;verbosity=minimal" (fails locally before build because this checkout was not prepared and the host SDK cannot evaluate the repo's .NET 11 graph)
  • make prepare (built xaprepare, but local bootstrap stopped because required host tools were missing: ccache, cmake, ninja, p7zip, and the repo's expected make detection)

Fixes #11006

Ensure AndroidManifestOverlay items participate in _ManifestMerger incremental checks and add regression coverage for overlay-only manifest updates.

Also track the built-in timing overlay by recording _AndroidFastTiming in the build properties cache and including Timing.xml in the target inputs.

Fixes dotnet#11006

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings March 24, 2026 00:05
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes an incremental-build gap in the Android manifest merge pipeline by ensuring _ManifestMerger’s declared incremental inputs include manifest overlay files (including the built-in timing overlay), and adds a regression test to validate the behavior.

Changes:

  • Add @(AndroidManifestOverlay) (and the built-in timing overlay path) to _ManifestMerger incremental Inputs.
  • Track _AndroidFastTiming in the properties cache so toggling timing mode invalidates incremental state appropriately.
  • Add a test intended to verify _ManifestMerger reruns when only an overlay file changes.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets Updates _ManifestMerger incremental inputs to include overlay files + timing overlay path; adds _AndroidFastTiming to property cache.
src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/ManifestTest.cs Adds a regression test for incremental behavior when an AndroidManifestOverlay file changes.

Redth and others added 2 commits March 23, 2026 20:24
Use a builder configuration that preserves the project between successful builds so OverlayManifestIncrementalBuildTest actually exercises incremental behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Restore the existing single-build manifest overlay test and set cleanupAfterSuccessfulBuild=false on OverlayManifestIncrementalBuildTest, where preserving the project between successful builds is required.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
jonathanpeppers and others added 3 commits March 24, 2026 10:24
- Remove hallucinated _ManifestMergerTimingOverlay PropertyGroup
- Simplify _ManifestMerger Inputs to just include @(AndroidManifestOverlay)
- Use proj.Touch() instead of overlay.Timestamp = null

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Removed the inclusion of the '_AndroidFastTiming' property from the property cache items.
Copy link
Member

@jonathanpeppers jonathanpeppers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can ignore the one failed test lane.

@jonathanpeppers jonathanpeppers merged commit 7f6ed40 into dotnet:main Mar 24, 2026
33 of 35 checks passed
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.

Incremental _ManifestMerger build ignores @(AndroidManifestOverlay) changes

3 participants