Investigate structured Android SDK package discovery for .NET 12
- 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