From 0866d38065ce7df20bc573381dbac285028802ba Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 23 Jun 2026 01:21:31 +0000 Subject: [PATCH 1/2] fix(build): resolve :nappletHost benchmark variant via matchingFallbacks The new plain-AGP :nappletHost library only declares debug/release build types (unlike the KMP :commons/:quartz libs, which match any build type). The :amethyst app's `benchmark` build type had no fallback, so Gradle could not resolve a matching :nappletHost variant for fdroidBenchmark/playBenchmark, breaking Test/Build CI on main. Add `matchingFallbacks += "release"` to the benchmark build type so it falls back to a library's release variant when no benchmark variant exists. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_014tzXcqVUcAPhyDDFak4SQ8 --- amethyst/build.gradle.kts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/amethyst/build.gradle.kts b/amethyst/build.gradle.kts index c8c3a72587..ceacdce4bf 100644 --- a/amethyst/build.gradle.kts +++ b/amethyst/build.gradle.kts @@ -212,6 +212,9 @@ android { } create("benchmark") { initWith(getByName("release")) + // Plain AGP library deps (e.g. :nappletHost) only declare debug/release build types, + // so fall back to their `release` variant when resolving the benchmark build type. + matchingFallbacks += "release" applicationIdSuffix = ".benchmark" versionNameSuffix = "-BENCHMARK" resValue("string", "app_name", "@string/app_name_benchmark") From 1f4ff914196175b80ae13a2a50672ab389781d57 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 23 Jun 2026 02:50:48 +0000 Subject: [PATCH 2/2] fix(build): give :nappletHost a benchmark variant for :amethyst benchmark builds The new plain-AGP :nappletHost library only declared debug/release build types (unlike the KMP :commons/:quartz/:nestsClient libs, which match any build type). The :amethyst app's `benchmark` build type therefore had no matching :nappletHost variant, breaking fdroidBenchmark/playBenchmark resolution and Test/Build CI on main. Declare a matching `benchmark` build type (initWith release) in :nappletHost so the app resolves a real variant. Library AARs aren't signed, so no signing config is needed here. :nappletHost is the only plain-AGP library :amethyst depends on, so no consumer-side matchingFallbacks is required. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_014tzXcqVUcAPhyDDFak4SQ8 --- amethyst/build.gradle.kts | 3 --- nappletHost/build.gradle.kts | 8 ++++++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/amethyst/build.gradle.kts b/amethyst/build.gradle.kts index ceacdce4bf..c8c3a72587 100644 --- a/amethyst/build.gradle.kts +++ b/amethyst/build.gradle.kts @@ -212,9 +212,6 @@ android { } create("benchmark") { initWith(getByName("release")) - // Plain AGP library deps (e.g. :nappletHost) only declare debug/release build types, - // so fall back to their `release` variant when resolving the benchmark build type. - matchingFallbacks += "release" applicationIdSuffix = ".benchmark" versionNameSuffix = "-BENCHMARK" resValue("string", "app_name", "@string/app_name_benchmark") diff --git a/nappletHost/build.gradle.kts b/nappletHost/build.gradle.kts index ddc19cd17c..c362b1195c 100644 --- a/nappletHost/build.gradle.kts +++ b/nappletHost/build.gradle.kts @@ -16,6 +16,14 @@ android { sourceCompatibility = JavaVersion.VERSION_21 targetCompatibility = JavaVersion.VERSION_21 } + + buildTypes { + // :amethyst defines a `benchmark` build type (release + profileable) for macrobenchmarks. + // Declare a matching variant here so the app can resolve this library for benchmark builds. + create("benchmark") { + initWith(getByName("release")) + } + } } kotlin {