Skip to content

Make AndroidTypeMapImplementation public - #12407

Merged
jonathanpeppers merged 2 commits into
mainfrom
copilot/dotnet-android-12405-document-typemap
Aug 18, 2026
Merged

Make AndroidTypeMapImplementation public#12407
jonathanpeppers merged 2 commits into
mainfrom
copilot/dotnet-android-12405-document-typemap

Conversation

Copilot AI commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

The type map selector was exposed only as the private _AndroidTypeMapImplementation property. This change publishes and documents it as AndroidTypeMapImplementation.

  • MSBuild

    • Renames the property across defaults, validation, target selection, and build caching.
    • Preserves llvm-ir as the CoreCLR default and trimmable as the NativeAOT default.
  • Documentation

    • Documents supported values and runtime-specific defaults.
    • Updates repository examples and build invocations.
<AndroidTypeMapImplementation>trimmable</AndroidTypeMapImplementation>

Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
Copilot AI changed the title [WIP] Make property that selects typemap public and documented Make AndroidTypeMapImplementation public Aug 17, 2026
Copilot AI requested a review from jonathanpeppers August 17, 2026 16:54
@jonathanpeppers
jonathanpeppers marked this pull request as ready for review August 17, 2026 21:02
Copilot AI lite review requested due to automatic review settings August 17, 2026 21:02
@jonathanpeppers jonathanpeppers added the ready-to-review This PR is ready to review/merge, I think any CI failures are just flaky (ignorable). label Aug 17, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 makes the typemap selector a documented, public MSBuild property (AndroidTypeMapImplementation) instead of the private _AndroidTypeMapImplementation, updating defaults and all internal/test usage accordingly.

Changes:

  • Renamed the typemap selector property across targets, tests, and CI templates, and updated build property caching/validation to use AndroidTypeMapImplementation.
  • Preserved runtime-specific defaults (llvm-ir for non-NativeAOT; trimmable for NativeAOT).
  • Documented the new property and updated repository docs/examples to use it.

Reviewed changes

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

Show a summary per file
File Description
tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs Updates device integration tests to set AndroidTypeMapImplementation.
tests/Mono.Android-Tests/Mono.Android-Tests/Mono.Android.NET-Tests.csproj Switches test project conditions to the new property name.
tests/Mono.Android-Tests/Java.Interop-Tests/Java.Interop-Tests.targets Updates jar selection and related conditions/comments to the new property name.
tests/Mono.Android-Tests/Java.Interop-Tests/Java.Interop-Tests.NET.csproj Updates conditional item groups to the new property name.
src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets Updates caching, validation, and typemap target imports to use AndroidTypeMapImplementation.
src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/TrimmableTypeMapBuildTests.cs Updates build tests to set AndroidTypeMapImplementation.
src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/PackagingTest.cs Updates packaging test to set AndroidTypeMapImplementation.
src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.Trimmable.targets Updates trimmable typemap target conditions to the new property name.
src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.Trimmable.NativeAOT.targets Updates NativeAOT trimmable typemap target conditions to the new property name.
src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.Trimmable.CoreCLR.targets Updates CoreCLR trimmable typemap target conditions to the new property name.
src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.LlvmIr.targets Passes AndroidTypeMapImplementation into the LLVM-IR typemap task.
src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.NativeAOT.targets Sets the NativeAOT default for AndroidTypeMapImplementation to trimmable.
src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.DefaultProperties.targets Sets the non-NativeAOT default for AndroidTypeMapImplementation to llvm-ir.
src/Microsoft.Android.Sdk.TrimmableTypeMap/README.md Updates the README example to use AndroidTypeMapImplementation.
Documentation/docs-mobile/building-apps/build-properties.md Adds documentation for AndroidTypeMapImplementation.
build-tools/automation/yaml-templates/stage-package-tests.yaml Updates CI build args to use AndroidTypeMapImplementation.
.github/copilot-instructions.md Updates contributor instructions/examples to use AndroidTypeMapImplementation.

Comment thread Documentation/docs-mobile/building-apps/build-properties.md
@jonathanpeppers
jonathanpeppers enabled auto-merge (squash) August 18, 2026 01:11
@jonathanpeppers

Copy link
Copy Markdown
Member

@dalexsoto review

@dalexsoto dalexsoto left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The public AndroidTypeMapImplementation surface, build-property documentation, consumers, and compatibility behavior are consistent with the accepted design.

@jonathanpeppers
jonathanpeppers merged commit 89ea860 into main Aug 18, 2026
45 checks passed
@jonathanpeppers
jonathanpeppers deleted the copilot/dotnet-android-12405-document-typemap branch August 18, 2026 01:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-review This PR is ready to review/merge, I think any CI failures are just flaky (ignorable).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[TrimmableTypeMap] make property that select typemap public/documented

4 participants