[external/Java.Interop] Drop nested xamarin-android-tools submodule - #11944
Merged
jonathanpeppers merged 1 commit intoJul 2, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR de-duplicates xamarin-android-tools by removing the redundant nested submodule under external/Java.Interop/ and retargeting Java.Interop build inputs (MSBuild, solutions, makefiles, and docs) to the canonical top-level checkout at external/xamarin-android-tools/.
Changes:
- Removed the nested
external/Java.Interop/external/xamarin-android-toolssubmodule entry and deleted the now-unusedexternal/Java.Interop/.gitmodules. - Updated Java.Interop solution and build wiring to reference
..\xamarin-android-tools\...(or../xamarin-android-tools/...) instead of the nested path. - Updated test documentation paths to point at the canonical
external/xamarin-android-tools/tests/location.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| external/Java.Interop/tools/generator/generator.slnf | Retargets AndroidSdk project path to the top-level external/xamarin-android-tools checkout. |
| external/Java.Interop/Makefile | Updates PREPARE_EXTERNAL_FILES reference to the canonical tools checkout. |
| external/Java.Interop/Java.Interop.sln | Retargets the AndroidSdk project entry to ..\xamarin-android-tools\.... |
| external/Java.Interop/Directory.Build.props | Changes the default $(XamarinAndroidToolsDirectory) to point at ..\xamarin-android-tools. |
| external/Java.Interop/build-tools/Java.Interop.BootstrapTasks/Java.Interop.BootstrapTasks.sln | Retargets AndroidSdk project entry to the canonical checkout via an updated relative path. |
| external/Java.Interop/.gitmodules | Removes the nested submodule’s only entry (file deleted). |
| .gitmodules | Removes the nested submodule block from the repo-level submodule manifest. |
| .github/skills/tests/references/test-catalog.md | Updates test invocation paths to use external/xamarin-android-tools/tests/.... |
simonrozsival
approved these changes
Jul 1, 2026
The nested `external/Java.Interop/external/xamarin-android-tools` submodule and the top-level `external/xamarin-android-tools` submodule both point at the same repo (dotnet/android-tools / xamarin/xamarin-android-tools). Since the Java.Interop history was merged into dotnet/android in #11942, keeping both is pure duplication. Remove the nested submodule and retarget every Java.Interop consumer at the top-level `external/xamarin-android-tools` checkout: - `external/Java.Interop/Directory.Build.props`: `$(XamarinAndroidToolsDirectory)` now points at `..\xamarin-android-tools`. - `external/Java.Interop/Java.Interop.sln` and `build-tools/Java.Interop.BootstrapTasks/Java.Interop.BootstrapTasks.sln`: updated project paths. - `external/Java.Interop/Makefile` and `external/Java.Interop/tools/generator/generator.slnf`: updated paths. - Top-level `.gitmodules`: removed the nested submodule entry. - `external/Java.Interop/.gitmodules`: deleted (only entry was the now-removed submodule). - `.github/skills/tests/references/test-catalog.md`: updated paths. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
jonathanpeppers
force-pushed
the
jonathanpeppers-drop-nested-xamarin-android-tools
branch
from
July 1, 2026 22:19
21c6d38 to
7d2bda7
Compare
jonathanpeppers
enabled auto-merge (squash)
July 1, 2026 22:19
simonrozsival
approved these changes
Jul 2, 2026
jonathanpeppers
deleted the
jonathanpeppers-drop-nested-xamarin-android-tools
branch
July 2, 2026 07:17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
After the Java.Interop history was merged into
dotnet/androidin #11942, we ended up with two submodules pointing at the same repo:external/xamarin-android-toolsdotnet/android-tools(top-level, canonical)external/Java.Interop/external/xamarin-android-toolsxamarin/xamarin-android-tools(nested, redundant)Both check out the same code. Keeping both wastes ~30 MB per fresh clone, doubles the "am I up to date?" surface area, and creates two places where the pinned commit can drift out of sync. This PR removes the nested one and retargets every Java.Interop consumer at the top-level checkout.
This is pure de-duplication — no functional change to
Xamarin.Android.Tools.AndroidSdkor anything that depends on it.Follows the earlier
.github/merge in #11942 and complements the parallel cleanup of other stale files underexternal/Java.Interop/(product.snk,CODE-OF-CONDUCT.md,SECURITY.md, top-levelMakefile, code-workspace,.gitmodules) that a sibling session is opening separately.What changed
Submodule removal:
external/Java.Interop/external/xamarin-android-toolssubmodule entry.[submodule "external/Java.Interop/external/xamarin-android-tools"]block from the top-level.gitmodules.external/Java.Interop/.gitmodules(the nested submodule was its only entry).Consumer updates (everything now points at
external/xamarin-android-tools/):external/Java.Interop/Directory.Build.props:$(XamarinAndroidToolsDirectory)→$(MSBuildThisFileDirectory)..\xamarin-android-toolsexternal/Java.Interop/Java.Interop.sln: project path →..\xamarin-android-tools\src\...external/Java.Interop/build-tools/Java.Interop.BootstrapTasks/Java.Interop.BootstrapTasks.sln: project path →..\..\..\xamarin-android-tools\src\...external/Java.Interop/Makefile:PREPARE_EXTERNAL_FILES→../xamarin-android-tools/src/...external/Java.Interop/tools/generator/generator.slnf: project path →..\\xamarin-android-tools\\src\\....github/skills/tests/references/test-catalog.md: doc paths updated.Verification
git submodule statusafter the change no longer listsexternal/Java.Interop/external/xamarin-android-tools, and still listsexternal/xamarin-android-tools.Local checkout impact
Git will then deinit the nested submodule cleanly. If you have local edits under
external/Java.Interop/external/xamarin-android-tools/, back them up first — that directory is going away.dotnet build/restore).