ADR 0001: Dual Gradle + Soong distribution
- Status: Accepted
- Date: 2026-09-15
Context
OEM SystemUI, CarLauncher, and platform media live in the AOSP build-tree
and depend on libraries through Soong (Android.bp). App developers
consume libraries through Gradle / Maven. A Gradle-only Cabin would block
platform adoption or force brittle prebuilt forks.
Decision
Cabin ships one source tree compiled two ways:
- Gradle → Maven AARs (
dev.decoupled.cabin:cabin-*, planned) - Soong →
android_librarymodules (CabinTokens,CabinCompliance,CabinViews,CabinCompose, planned)
Co-locate build.gradle.kts and Android.bp per module. Prefer
source-in-tree for SystemUI; AAR android_library_import is secondary.
Consequences
- Agents must not document SystemUI adoption as Gradle
implementation - Thin Soong deps are enforceable in platform bp files
- CI may be Gradle-first; platform verification is partner/tree-owned for MVP