From 9a2b58d43fc7f42b6dbeba33d8f37a9df424f130 Mon Sep 17 00:00:00 2001 From: Igor Demin Date: Tue, 8 Nov 2022 09:46:11 +0100 Subject: [PATCH] Relationship between the Jetpack Compose and Compose Multiplatform release cycles (#2367) --- VERSIONING.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/VERSIONING.md b/VERSIONING.md index f3f74baa3c..63506e22ab 100644 --- a/VERSIONING.md +++ b/VERSIONING.md @@ -32,3 +32,22 @@ Kotlin version | Minimal Compose version | Notes 1.7.10 | 1.2.0 1.7.20 | 1.2.0 | JS is not supported (will be fixed in the next versions) 1.7.20 | 1.2.1 + +### Relationship between the Jetpack Compose and Compose Multiplatform release cycles + +Compose Multiplatform shares a lot of code with [Jetpack Compose](https://developer.android.com/jetpack/compose) for Android, a framework developed by Google. +We keep our release cycles aligned, making sure that the common part is properly tested and stabilized. + +When a new version of Jetpack Compose is released, we pick the release commit, use it as a base for the next [Compose Multiplatform](https://github.com/JetBrains/androidx) version, finish new platform features, stabilize all platforms, and release Compose Multiplatform. +The gap between a Compose Multiplatform release and a Jetpack Compose release is usually 1 to 3 months. + +When you build your application for Android, the artifacts published by Google are used. For example, if you apply the Compose Multiplatform 1.2.0 Gradle plugin and add `implementation(compose.material3)` to your `dependencies`, then your project will use the `androidx.compose.material3:material3:1.0.0-alpha14` artifact in the Android target (but `org.jetbrains.compose.material3:material3:1.2.0` in the other targets). See the `Updated dependencies` sections in the [CHANGELOG](https://github.com/JetBrains/compose-jb/blob/master/CHANGELOG.md) to know exactly which version of the Jetpack Compose artifact will be used. + +The Compose Compiler version can be changed independently of other Compose libraries. In order to support newer versions of Kotlin, you may want to use [the cutting-edge Compose Compiler](https://developer.android.com/jetpack/androidx/releases/compose-kotlin#pre-release_kotlin_compatibility) published by Google in your Compose Multiplatform project. For example, when a new version of Kotlin is released, the corresponding Compose Multiplatform release may not yet have been published, but manually specifying a newer Compose Compiler version can allow you to build your Compose Multiplatform app using the latest Kotlin release. To do so, set `kotlinCompilerPlugin` in the `compose` section of your `build.gradle.kts` file as follows: + +```kotlin +compose { + kotlinCompilerPlugin.set("androidx.compose.compiler:compiler:1.3.1") +} +``` +However, keep in mind that this compiler version isn't tested with Compose Multiplatform, so stability isn't guaranteed.