From 751cf2ca0c08c8d1ef98b5fd2bef47c2953a1825 Mon Sep 17 00:00:00 2001 From: Ralf Wondratschek Date: Thu, 3 Sep 2026 21:56:59 -0700 Subject: [PATCH 1/2] Upgrade blueprint projects to App Platform 0.1.4 Keep `blueprints/starter` and `blueprints/list-detail` aligned with the latest published framework release and its Compose 1.12 runtime. Migrate the removed composition-local helper and declare executable Wasm targets so copied projects build and test without deprecated API or CMP-4906 failures. --- CHANGELOG.md | 2 ++ .../ralf/app/platform/listdetail/gradle/Platform.kt | 6 +++--- blueprints/list-detail/gradle/libs.versions.toml | 6 +++--- .../platform/listdetail/templates/AppTemplatePresenter.kt | 4 ++-- blueprints/starter/app-framework/impl/build.gradle.kts | 2 ++ blueprints/starter/gradle/libs.versions.toml | 4 ++-- blueprints/starter/navigation/impl/build.gradle.kts | 1 + blueprints/starter/templates/impl/build.gradle.kts | 1 + .../platform/template/templates/AppTemplatePresenter.kt | 7 ++----- 9 files changed, 18 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ff8198c6..bf1e6e07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ ### Changed +- Upgrade the blueprint projects to App Platform `0.1.4`. + ### Deprecated ### Removed diff --git a/blueprints/list-detail/buildSrc/src/main/kotlin/software/ralf/app/platform/listdetail/gradle/Platform.kt b/blueprints/list-detail/buildSrc/src/main/kotlin/software/ralf/app/platform/listdetail/gradle/Platform.kt index 1bc023b8..8ef7a6d2 100644 --- a/blueprints/list-detail/buildSrc/src/main/kotlin/software/ralf/app/platform/listdetail/gradle/Platform.kt +++ b/blueprints/list-detail/buildSrc/src/main/kotlin/software/ralf/app/platform/listdetail/gradle/Platform.kt @@ -122,10 +122,10 @@ internal sealed interface Platform { } } } + } - if (project.path == ":app:web") { - binaries.executable() - } + project.plugins.withId(Plugins.COMPOSE_MULTIPLATFORM) { + project.kmpExtension.wasmJs { binaries.executable() } } } } diff --git a/blueprints/list-detail/gradle/libs.versions.toml b/blueprints/list-detail/gradle/libs.versions.toml index bcdef671..060536aa 100644 --- a/blueprints/list-detail/gradle/libs.versions.toml +++ b/blueprints/list-detail/gradle/libs.versions.toml @@ -8,13 +8,13 @@ androidx-test-junit = "1.3.0" androidx-test-orchestrator = "1.6.1" androidx-test-rules = "1.7.0" androidx-test-runner = "1.7.0" -app-platform = "0.1.3" +app-platform = "0.1.4" assertk = "0.28.1" -compose-android = "1.11.4" +compose-android = "1.12.0" compose-material-icons = "1.7.3" compose-material3 = "1.9.0" compose-hot-reload = "1.2.0" -compose-multiplatform = "1.11.1" +compose-multiplatform = "1.12.0" coroutines = "1.11.0" detekt = "2.0.0-alpha.5" jvm-buildsrc = "21" diff --git a/blueprints/list-detail/templates/public/src/commonMain/kotlin/software/ralf/app/platform/listdetail/templates/AppTemplatePresenter.kt b/blueprints/list-detail/templates/public/src/commonMain/kotlin/software/ralf/app/platform/listdetail/templates/AppTemplatePresenter.kt index b72f46b0..bdf616e9 100644 --- a/blueprints/list-detail/templates/public/src/commonMain/kotlin/software/ralf/app/platform/listdetail/templates/AppTemplatePresenter.kt +++ b/blueprints/list-detail/templates/public/src/commonMain/kotlin/software/ralf/app/platform/listdetail/templates/AppTemplatePresenter.kt @@ -1,13 +1,13 @@ package software.ralf.app.platform.listdetail.templates import androidx.compose.runtime.Composable +import androidx.compose.runtime.withCompositionLocal import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedFactory import dev.zacsweers.metro.AssistedInject import software.ralf.app.platform.presenter.molecule.MoleculePresenter import software.ralf.app.platform.presenter.molecule.backgesture.BackGestureDispatcherPresenter import software.ralf.app.platform.presenter.molecule.backgesture.LocalBackGestureDispatcherPresenter -import software.ralf.app.platform.presenter.molecule.returningCompositionLocalProvider /** * Adapts a root feature presenter into the application template stream. @@ -22,7 +22,7 @@ class AppTemplatePresenter( ) : MoleculePresenter { @Composable override fun present(input: Unit): AppTemplate { - return returningCompositionLocalProvider( + return withCompositionLocal( LocalBackGestureDispatcherPresenter provides backGestureDispatcherPresenter ) { rootPresenter.present(Unit).toAppTemplate() diff --git a/blueprints/starter/app-framework/impl/build.gradle.kts b/blueprints/starter/app-framework/impl/build.gradle.kts index 4991eb19..6ae1d64d 100644 --- a/blueprints/starter/app-framework/impl/build.gradle.kts +++ b/blueprints/starter/app-framework/impl/build.gradle.kts @@ -56,6 +56,8 @@ kotlin { } wasmJs { + binaries.executable() + browser() } diff --git a/blueprints/starter/gradle/libs.versions.toml b/blueprints/starter/gradle/libs.versions.toml index 0fe72377..583225a5 100644 --- a/blueprints/starter/gradle/libs.versions.toml +++ b/blueprints/starter/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] assertk = "0.28.1" -app-platform = "0.1.3" +app-platform = "0.1.4" agp = "9.3.1" android-compileSdk = "37" android-minSdk = "23" @@ -8,7 +8,7 @@ android-targetSdk = "37" androidx-activity = "1.13.0" compose-material-icons = "1.7.3" compose-material3 = "1.9.0" -compose-multiplatform = "1.11.1" +compose-multiplatform = "1.12.0" coroutines = "1.11.0" kotlin = "2.4.10" metro = "1.4.2" diff --git a/blueprints/starter/navigation/impl/build.gradle.kts b/blueprints/starter/navigation/impl/build.gradle.kts index a068f4a2..06b8f50e 100644 --- a/blueprints/starter/navigation/impl/build.gradle.kts +++ b/blueprints/starter/navigation/impl/build.gradle.kts @@ -37,6 +37,7 @@ kotlin { wasmJs { outputModuleName = project.path.removePrefix(":").replace(":", "-") + binaries.executable() browser() } diff --git a/blueprints/starter/templates/impl/build.gradle.kts b/blueprints/starter/templates/impl/build.gradle.kts index 684d4b3a..5f0c8b0f 100644 --- a/blueprints/starter/templates/impl/build.gradle.kts +++ b/blueprints/starter/templates/impl/build.gradle.kts @@ -37,6 +37,7 @@ kotlin { wasmJs { outputModuleName = project.path.removePrefix(":").replace(":", "-") + binaries.executable() browser() } diff --git a/blueprints/starter/templates/public/src/commonMain/kotlin/software/ralf/app/platform/template/templates/AppTemplatePresenter.kt b/blueprints/starter/templates/public/src/commonMain/kotlin/software/ralf/app/platform/template/templates/AppTemplatePresenter.kt index 07fca7f0..42ba5036 100644 --- a/blueprints/starter/templates/public/src/commonMain/kotlin/software/ralf/app/platform/template/templates/AppTemplatePresenter.kt +++ b/blueprints/starter/templates/public/src/commonMain/kotlin/software/ralf/app/platform/template/templates/AppTemplatePresenter.kt @@ -1,12 +1,12 @@ package software.ralf.app.platform.template.templates import androidx.compose.runtime.Composable +import androidx.compose.runtime.withCompositionLocals import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedFactory import dev.zacsweers.metro.AssistedInject import software.ralf.app.platform.presenter.BaseModel import software.ralf.app.platform.presenter.molecule.MoleculePresenter -import software.ralf.app.platform.presenter.molecule.returningCompositionLocalProvider import software.ralf.app.platform.presenter.template.ModelDelegate import software.ralf.app.platform.presenter.template.toTemplate @@ -21,10 +21,7 @@ class AppTemplatePresenter(@Assisted private val rootPresenter: MoleculePresente MoleculePresenter { @Composable override fun present(input: Unit): AppTemplate { - @Suppress("RemoveEmptyParenthesesFromLambdaCall") - return returningCompositionLocalProvider( - // Add local composition providers if needed. - ) { + return withCompositionLocals { rootPresenter.present(Unit).toTemplate { AppTemplate.FullScreenTemplate(it) } } } From b0c48b04429a9efd3ccb3fd98721c7762db7e072 Mon Sep 17 00:00:00 2001 From: Ralf Wondratschek Date: Thu, 3 Sep 2026 22:05:50 -0700 Subject: [PATCH 2/2] Remove blueprint upgrade from changelog Blueprint projects are repository templates rather than shipped App Platform artifacts, so their internal version upgrade should not appear in the consumer-facing `CHANGELOG.md`. --- CHANGELOG.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bf1e6e07..ff8198c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,6 @@ ### Changed -- Upgrade the blueprint projects to App Platform `0.1.4`. - ### Deprecated ### Removed