Skip to content

Bump Xamarin.Android.Tools.AndroidSdk to 1.0.179-ci.main.323#305

Open
rmarinho wants to merge 3 commits into
mainfrom
rmarinho/bump-xamarin-android-tools-androidsdk
Open

Bump Xamarin.Android.Tools.AndroidSdk to 1.0.179-ci.main.323#305
rmarinho wants to merge 3 commits into
mainfrom
rmarinho/bump-xamarin-android-tools-androidsdk

Conversation

@rmarinho
Copy link
Copy Markdown
Member

@rmarinho rmarinho commented Jun 2, 2026

Summary

Routine darc-driven bump of Xamarin.Android.Tools.AndroidSdk on the .NET 11.0.1xx SDK channel.

Before After
Version 1.0.155-preview.137 1.0.179-ci.main.323
dotnet/android SHA e8fb4bc 9e7ba6e
dotnet/android-tools submodule SHA 2fd1240 3c95718

The package we depend on is built from the external/xamarin-android-tools submodule of dotnet/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.

SHA Change Why it matters
2b9c8c2 New API: AvdManagerRunner.ListDeviceProfilesAsync() returning IReadOnlyList<AvdDeviceProfile> See "CLI follow-up" below.
310b3e9 Add API 37 (CinnamonBun) to KnownVersions Future-proofs Android level mapping.
78ee58f Handle InvalidOperationException when emulator process has no associated OS process Upstream-only fix inside their emulator runner; we don't go through it (see follow-up).
8a58f4f Fix runner ThrowIfFailed swallowing stdout Marginally better error surface from AdbRunner.
7c05b5c Launch emulator in signal-isolated process on Unix to survive Ctrl+C Upstream-only — our CLI launches the emulator via its own Process plumbing in Providers/Android/AvdManager.cs.
46b5284 [BaseTasks] remove unused System.Reflection.Metadata reference Pure cleanup.
various Bumps of Microsoft.Build.*, BenchmarkDotNet, Arcade SDK, NRT-warning fixes No public-API impact.

I verified the bump preserves every type/member the CLI calls by diffing the PublicAPI.{Shipped,Unshipped}.txt files at SHA 3c95718 against current usage in src/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 in src/Cli/Microsoft.Maui.Cli/Commands/AndroidCommands.Emulator.cs (around L130). I'm leaving it alone for now: the new API returns AvdDeviceProfile(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 / HasExited workaround in AvdManager.cs is around our own Process.Start, not the upstream EmulatorRunner, 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.323 is not on any of the public feeds in NuGet.config (dotnet11 latest is 1.0.162-ci.main.175). The ci.main.* build label indicates an internal-only build that hasn't been promoted to preview.* yet — this is expected when bumping to a channel head before a preview tag rolls. Internal dnceng feeds (which CI gets via the Maestro-managed dotnet-dotnet section of NuGet.config) should resolve it. Note that the only diff to NuGet.config is 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:

  1. Re-run after the next -preview.* promotion of this SHA, or
  2. Re-bump with darc update-dependencies once the public feed catches up.

Files changed

  • eng/Version.Details.xml — version + SHA
  • eng/Versions.propsXamarinAndroidToolsAndroidSdkVersion
  • NuGet.config — incidental trailing-blank-line removal by darc

No source code changed.

Please review — do not auto-merge.


Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

Copilot AI review requested due to automatic review settings June 2, 2026 22:05
Copy link
Copy Markdown
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

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.AndroidSdk from 1.0.155-preview.137 to 1.0.179-ci.main.323.
  • Update the tracked upstream dotnet/android SHA 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.

Comment thread eng/Versions.props
Comment on lines 63 to 66
<!-- 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>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

Expert Code Review — PR #305

Methodology: 3 independent reviewers with adversarial consensus

Findings

1 finding posted as inline comment (1 critical)

# Severity Consensus File Line Finding
1 🔴 Critical 3/3 eng/Versions.props 65 Package 1.0.179-ci.main.323 not available on any configured public NuGet feed — dotnet restore will fail in GitHub Actions CI

Discarded Findings

The following were flagged by only 1 reviewer and did not achieve consensus:

  • SemVer prerelease ordering risk (🟡, Reviewer 1) — Both other reviewers disagreed: darc pins exact versions, not ranges, so the lexicographic ci.main < preview comparison never triggers in practice.
  • Zero build validation before merge (🟡, Reviewer 2) — Subsumed by the critical finding (same root cause: package unavailability prevents any validation).
  • Channel label inconsistency in PR description (🟢, Reviewer 2) — Documentation-only, no code impact.
  • NuGet.config blank line removal (🟢, Reviewer 1) — Cosmetic, explicitly benign.

CI Status

  • Several builds in progress (macOS + Windows matrix across multiple products)
  • 1 macOS build failed (cancelled/superseded)
  • Multiple product builds succeeded (those not depending on the Android SDK package)
  • The CLI build is expected to fail on package resolution once it reaches dotnet restore

Test Coverage

No 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.


Generated by Expert Code Review · 3 independent reviewers with adversarial consensus

Generated by Expert Code Review (auto) for issue #305 · ● 6.6M ·

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

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

Comment thread eng/Versions.props
<!-- 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>
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.

🔴 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:

  1. The package is promoted to a public feed (e.g., dotnet11) under a preview.* label, or
  2. darc injects the appropriate internal transport feed (e.g., darc-pub-dotnet-android-*) into the managed section of NuGet.config.

Copilot AI and others added 2 commits June 3, 2026 19:24
….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>
@rmarinho rmarinho force-pushed the rmarinho/bump-xamarin-android-tools-androidsdk branch from 9525fa0 to bd325a2 Compare June 3, 2026 18:24
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>
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.

3 participants