Bump Xamarin.Android.Tools.AndroidSdk to 1.0.179-ci.main.323#305
Bump Xamarin.Android.Tools.AndroidSdk to 1.0.179-ci.main.323#305rmarinho wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the repo’s pinned Android SDK tooling dependency (Xamarin.Android.Tools.AndroidSdk) to a newer darc/maestro-provided build, keeping MAUI CLI/Android tooling aligned with upstream dotnet/android.
Changes:
- Bump
Xamarin.Android.Tools.AndroidSdkfrom1.0.155-preview.137to1.0.179-ci.main.323. - Update the tracked upstream
dotnet/androidSHA in dependency metadata. - Remove an incidental trailing blank line in
NuGet.config.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| NuGet.config | Removes a trailing blank line (no functional feed changes). |
| eng/Versions.props | Updates the XamarinAndroidToolsAndroidSdkVersion property to the new version. |
| eng/Version.Details.xml | Updates dependency version and SHA for dependency flow tracking. |
| <!-- Android platform tooling (managed via darc/maestro — see eng/Version.Details.xml) --> | ||
| <PropertyGroup Label="Android Tools"> | ||
| <XamarinAndroidToolsAndroidSdkVersion>1.0.155-preview.137</XamarinAndroidToolsAndroidSdkVersion> | ||
| <XamarinAndroidToolsAndroidSdkVersion>1.0.179-ci.main.323</XamarinAndroidToolsAndroidSdkVersion> | ||
| </PropertyGroup> |
Expert Code Review — PR #305Methodology: 3 independent reviewers with adversarial consensus Findings1 finding posted as inline comment (1 critical)
Discarded FindingsThe following were flagged by only 1 reviewer and did not achieve consensus:
CI Status
Test CoverageNo tests are affected — this PR changes only infrastructure version pins with no source code modifications. The existing test suite will validate API compatibility once the package is resolvable.
|
There was a problem hiding this comment.
Expert Code Review: 1 critical finding posted inline. See the lean summary comment for full details.
Generated by Expert Code Review (auto) for issue #305 · ● 6.6M
| <!-- Android platform tooling (managed via darc/maestro — see eng/Version.Details.xml) --> | ||
| <PropertyGroup Label="Android Tools"> | ||
| <XamarinAndroidToolsAndroidSdkVersion>1.0.155-preview.137</XamarinAndroidToolsAndroidSdkVersion> | ||
| <XamarinAndroidToolsAndroidSdkVersion>1.0.179-ci.main.323</XamarinAndroidToolsAndroidSdkVersion> |
There was a problem hiding this comment.
🔴 CRITICAL · 3/3 consensus
Package not resolvable on configured public feeds — CI will break.
Xamarin.Android.Tools.AndroidSdk 1.0.179-ci.main.323 uses a ci.main.* label indicating an unpromoted internal build. The 5 feeds in NuGet.config are all public (/public/_packaging/... URLs), and darc did not inject an internal transport feed. dotnet restore will fail with NU1102 on every GitHub Actions runner once this merges.
The Azure DevOps official pipeline (-prepareMachine) may resolve via internal credentials, but all GitHub Actions CI workflows (path-filtered on eng/**) will be broken.
Recommendation: Do not merge until either:
- The package is promoted to a public feed (e.g.,
dotnet11) under apreview.*label, or - darc injects the appropriate internal transport feed (e.g.,
darc-pub-dotnet-android-*) into the managed section ofNuGet.config.
….179-ci.main.323 Channel: .NET 11.0.1xx SDK Repo: dotnet/android e8fb4bc8...9e7ba6ea (android-tools submodule: 2fd1240...3c95718) Notable upstream changes: new AvdManagerRunner.ListDeviceProfilesAsync() API, API 37 (CinnamonBun) added to KnownVersions, and several emulator launch robustness fixes. No CLI code changes required — the pinned API surface is backward-compatible with our current usage of AdbRunner, AvdManagerRunner, EmulatorRunner, SdkManager and JdkInfo. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Xamarin.Android.Tools.AndroidSdk package is classified as non-shipping by dotnet/android (see dotnet/android#11281, which fixed the NonShipping metadata casing in May 2026). Non-shipping packages publish to the dotnet11-transport Azure DevOps feed rather than dotnet11, so the existing public feed list cannot resolve the 1.0.179-ci.main.323 pin added in this branch. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
9525fa0 to
bd325a2
Compare
Packages on the dotnet11-transport feed are signed but not long-term timestamped, which Arcade's strict signature validation promotes to error NU3027 on Windows CI runners. Suppress the warning so restore succeeds. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Summary
Routine darc-driven bump of
Xamarin.Android.Tools.AndroidSdkon the .NET 11.0.1xx SDK channel.1.0.155-preview.1371.0.179-ci.main.323dotnet/androidSHAe8fb4bc9e7ba6edotnet/android-toolssubmodule SHA2fd12403c95718The package we depend on is built from the
external/xamarin-android-toolssubmodule ofdotnet/android, so the actionable diff is the android-tools range above.Notable upstream changes (android-tools)
Only changes that could affect the CLI/agent are listed.
2b9c8c2AvdManagerRunner.ListDeviceProfilesAsync()returningIReadOnlyList<AvdDeviceProfile>310b3e9KnownVersions78ee58fInvalidOperationExceptionwhen emulator process has no associated OS process8a58f4fThrowIfFailedswallowing stdoutAdbRunner.7c05b5cProcessplumbing inProviders/Android/AvdManager.cs.46b5284[BaseTasks]remove unusedSystem.Reflection.MetadatareferenceMicrosoft.Build.*,BenchmarkDotNet, Arcade SDK, NRT-warning fixesI verified the bump preserves every type/member the CLI calls by diffing the
PublicAPI.{Shipped,Unshipped}.txtfiles at SHA3c95718against current usage insrc/Cli/Microsoft.Maui.Cli/Providers/Android/:AdbRunner(ctor +ListDevicesAsync/StopEmulatorAsync/WaitForDeviceAsync),AvdManagerRunner(GetOrCreateAvdAsync/ListAvdsAsync),EmulatorRunner(BootEmulatorAsync/LaunchEmulator),SdkManager(bootstrap +ListAsync),SdkPackage,AvdInfo,JdkInfo.GetKnownSystemJdkInfos,SdkBootstrapPhase/Progress. All still present.CLI follow-up — none
I considered adopting
AvdManagerRunner.ListDeviceProfilesAsync()to replace the hard-coded popular-device list insrc/Cli/Microsoft.Maui.Cli/Commands/AndroidCommands.Emulator.cs(around L130). I'm leaving it alone for now: the new API returnsAvdDeviceProfile(string Id)only — no friendly name — and our current list is intentionally curated (Pixel 6/8/9, Pixel Fold, Pixel Tablet, etc.) so the picker stays short. Swapping in the upstream call would expose 30+ raw profile IDs with no display labels and regress the prompt UX. Worth a separate proposal if we want to add the long-list option behind a flag.Nothing else jumped out as worth simplifying — our emulator launch /
HasExitedworkaround inAvdManager.csis around our ownProcess.Start, not the upstreamEmulatorRunner, so the upstream fixes (78ee58f,7c05b5c) don't replace anything on our side.Build / test status
Local build/test was not validated against the actual pinned version because
1.0.179-ci.main.323is not on any of the public feeds inNuGet.config(dotnet11latest is1.0.162-ci.main.175). Theci.main.*build label indicates an internal-only build that hasn't been promoted topreview.*yet — this is expected when bumping to a channel head before a preview tag rolls. Internal dnceng feeds (which CI gets via the Maestro-manageddotnet-dotnetsection ofNuGet.config) should resolve it. Note that the only diff toNuGet.configis a darc-removed trailing blank line in the public sources block.Public-API surface review (above) shows the bump is source-compatible, so once the package resolves in CI the existing test suite should pass unchanged.
If CI fails on package resolution we can either:
-preview.*promotion of this SHA, ordarc update-dependenciesonce the public feed catches up.Files changed
eng/Version.Details.xml— version + SHAeng/Versions.props—XamarinAndroidToolsAndroidSdkVersionNuGet.config— incidental trailing-blank-line removal by darcNo source code changed.
Please review — do not auto-merge.
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com