From 9b7f481291ccd8499a815b9403d83f34dec06fa5 Mon Sep 17 00:00:00 2001 From: Masashi Katsumata Date: Sun, 16 Aug 2026 23:43:10 +0900 Subject: [PATCH] Publish explicit versions for BOM-managed Compose dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Maven Central rejects a POM that declares a dependency without a version. The Compose BOM supplies those versions at resolution time, but a BOM does not travel in the published POM, so consumers who do not import the BOM themselves get an unresolvable dependency. Give the BOM-managed Compose artifacts an explicit version (`composeLibs`, 1.7.8 — what compose-bom 2025.02.00 resolves to) so the version reaches the POM. The BOM still governs resolution; this only fixes what is published. Release as 1.3.1: Maven Central versions cannot be replaced. --- gradle.properties | 2 +- gradle/libs.versions.toml | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/gradle.properties b/gradle.properties index a60f5cd..26d9949 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,5 +8,5 @@ minSdk=26 javaVersion=17 jvmTarget=17 -libraryVersion=1.3.0 +libraryVersion=1.3.1 android.generateSyncIssueWhenLibraryConstraintsAreEnabled=false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6d4710a..b2fda5a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,4 +1,5 @@ [versions] +composeLibs = "1.7.8" coroutines = "1.9.0" agp = "9.2.1" kotlin = "2.0.21" @@ -19,9 +20,9 @@ espressoCore = "3.7.0" kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "coroutines" } # Jetpack Compose (with BOM) androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } -androidx-ui = { group = "androidx.compose.ui", name = "ui" } -androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } -androidx-foundation = { group = "androidx.compose.foundation", name = "foundation" } +androidx-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "composeLibs" } +androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview", version.ref = "composeLibs" } +androidx-foundation = { group = "androidx.compose.foundation", name = "foundation", version.ref = "composeLibs" } # Lifecycle androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" } @@ -32,8 +33,8 @@ tomtom-map-display = { group = "com.tomtom.sdk.maps", name = "map-display-standa # Sample app androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" } -androidx-material3 = { group = "androidx.compose.material3", name = "material3" } -androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } +androidx-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "composeLibs" } +androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "composeLibs" } # Test junit = { group = "junit", name = "junit", version.ref = "junit" }