Skip to content

[skill-runner] update-androidsdk-packages: refresh stable SDK packages - #12442

Open
github-actions[bot] wants to merge 7 commits into
mainfrom
skill-runner/androidsdk-20260819-dd770c0aeb0b7269
Open

[skill-runner] update-androidsdk-packages: refresh stable SDK packages#12442
github-actions[bot] wants to merge 7 commits into
mainfrom
skill-runner/androidsdk-20260819-dd770c0aeb0b7269

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

AI-generated update. Produced by the skill-runner agentic workflow running the update-androidsdk-packages skill.

Changes

  • Updated Android SDK Command-line Tools from 19.0 (13114758) to 23.0 (16111833) for Linux, Windows, macOS x64, and macOS arm64.
  • Added the architecture-specific macOS arm64 command-line-tools archive and retained an x64-specific archive.
  • Updated Android Emulator from 36.4.10 (15004761) to 37.2.5 (16079175) for Linux, Windows, macOS x64, and macOS arm64.
  • Updated sources from Android 37.0 revision 2 to Android 37.1 revision 1.
  • Recomputed all affected SHA-256 hashes after validating Google manifest SHA-1 values and sizes.
  • Left the Android NDK unchanged.

Validation

  • dotnet build build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks.csproj -v:minimal — succeeded with 0 warnings and 0 errors.
  • dotnet restore src/androidsdk/androidsdk.csproj — succeeded.
  • dotnet build src/androidsdk/androidsdk.csproj --no-restore -v:minimal -t:_AddPlatformPackagesToInstall — succeeded with 0 warnings and 0 errors.
  • git diff --check — succeeded.
  • Verified the _PlatformPackage count and API-level set are unchanged and no NDK lines changed.

Notes

No newer stable platform level exists upstream beyond platform 37.1, the highest entry in _PlatformPackage.

Generated by Skill Runner · gpt56 · 133.1 AIC · ⌖ 60.8 AIC · ⊞ 24.7K ·

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
jonathanpeppers and others added 3 commits August 19, 2026 13:55
Command-line tools 23.0 no longer creates the licenses directory when --licenses is invoked, causing the marker Touch task to fail on all CI hosts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep separate source packages, hashes, and destinations for Android 37.0 and 37.1. Update the package refresh skill and its regression coverage so future stable source additions do not replace existing platform sources.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Command-line tools 23 deprecates sdkmanager --licenses and no longer creates Gradle's android-sdk-license file. Use android sdk install for the already-pinned Build Tools package, retain the legacy fallback, and verify the license file exists before writing the incremental marker.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@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 20, 2026
@jonathanpeppers

Copy link
Copy Markdown
Member

/review

@github-actions

github-actions Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor Author

Android PR Reviewer completed successfully!

Generated by Android PR Reviewer for #12442

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Found one correctness issue in the new license-acceptance path: an android CLI failure can be masked by a pre-existing license file, allowing the acceptance marker to be recreated after a failed command. The package pins, architecture-specific command-line tools, and preserved platform sources otherwise look coherent.

CI is still incomplete: two Linux MSBuild checks are running and the aggregate dotnet-android check is queued; completed checks currently show no failures.

Generated by Android PR Reviewer for #12442 · gpt56 · 169 AIC · ⌖ 18.7 AIC · ⊞ 25.7K
Comment /review to run again

Comment thread src/androidsdk/androidsdk.targets Outdated
jonathanpeppers and others added 2 commits August 20, 2026 10:37
Delete the existing Android SDK license before invoking the license tool so the postcondition proves the current invocation recreated it, even when the Android CLI's unreliable exit code must be ignored.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@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.

Five SDK refresh blockers remain:

  • Emulator 37.2.5 is Google channel-2 (dev), not stable; current stable is 37.1.11.
  • Command-line tools 23.0 changes only bootstrap pins, while product installs/workload manifests still use 19.0; exact CI therefore never exercises 23.0, and generated-props invalidation omits Configuration.props.
  • License acceptance executes an unpinned bootstrapper that downloads mutable latest CLI payloads and rewrites the verified Build Tools directory.
  • Deleting the entire existing license loses valid fingerprints, while Exists() alone accepts empty/truncated/wrong files; writes are non-atomic and unlocked.
  • macOS x64/arm64 archives share destination/sentinel outputs, so architecture switches can skip extraction and leave the wrong binaries installed.

Please restore stable-only selection, align shipped dependencies, pin/verify every executed payload, preserve and validate licenses atomically, and make extraction stamps architecture/hash-specific.

Use stable emulator packages, align command-line tools across bootstrap and product installs, and make license acceptance deterministic and atomic.

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

Copilot-Session: 0e41ab6f-5ce8-4ee9-aea2-2dfb541e2592
@jonathanpeppers

Copy link
Copy Markdown
Member

Addressed the remaining SDK refresh blockers in commit 46e1c7a:

  • restored stable channel-0 emulator 37.1.11 with freshly verified hashes
  • aligned command-line-tools 23.0 across bootstrap pins, shipped dependency properties, and the installer feed
  • removed the mutable Android CLI license bootstrap; license fingerprints are now preserved, validated, locked, and written atomically
  • made extraction stamps archive identity + SHA-256-specific so macOS architecture switches cannot reuse the wrong payload
  • hardened the update-androidsdk-packages skill and added regression scenarios for these cases

The NDK remains unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants