dotnet / dotnet/android

Investigate structured Android SDK package discovery for .NET 12

Open
#12,472 0 comments 0 reactions 0 assignees View on GitHub
Area: App+Library Build
Dominant language
C#
Stars
2.1k
Forks
579
Avg merge
1d 20h
Merged PRs (30d)
257

Description

## Context

PR #12466 adds a one-time compatibility fix for parsing the current `sdkmanager --list` and Android CLI text formats. Scraping human-readable table output is fragile and should not remain the long-term package-discovery strategy.

## Investigation

Evaluate the maintainable approach for .NET 12:

1. **Java wrapper around the SDK manager libraries** — Create a small Java project using the SDK manager artifacts from Maven. Reuse `SdkManagerCliSettings`, load the typed `RepositoryPackages` model, and serialize local, remote, new, and updated packages as JSON. This preserves channels, custom sources, obsolete filtering, proxies, and repository parsing, but depends on internal APIs that may change between command-line-tools releases.
2. **Android CLI integration** — Determine whether the new `android` CLI provides, or plans to provide, stable machine-readable package discovery that can replace `sdkmanager --list` parsing.
3. Compare fallback options such as installed-package `package.xml` parsing and document why direct remote repository XML parsing or continued CLI table scraping should or should not be used.

## Deliverables

- Document the required package-discovery behaviors and compatibility constraints.
- Prototype the viable options and compare reliability, maintenance cost, distribution size, startup cost, and command-line-tools version compatibility.
- Select the .NET 12 implementation direction and file implementation work as needed.
- Define a fallback/error strategy when the selected integration is unavailable or incompatible.

## References

- Java wrapper proposal: https://github.com/dotnet/android/pull/12466#pullrequestreview-4986313331
- Android CLI proposal: https://github.com/dotnet/android/pull/12466#issuecomment-5360363496
- Current parser compatibility fix: #12466

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing PR #12466 and its sdkmanager --list compatibility fix, then prototype the Java wrapper, Android CLI integration, and package.xml fallback described here. Compare their behavior and compatibility with the required package-discovery cases; done means documented constraints, a selected .NET 12 direction, and a defined fallback or error strategy.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, csharp, java
Domain
mobile-dev, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.