Skip to content

Commit 673de03

Browse files
terrakokigordmn
andauthored
Add release notes for 1.9.0-alpha02 release (#5329)
## Release Notes N/A --------- Co-authored-by: Igor Demin <[email protected]>
1 parent ab2e690 commit 673de03

File tree

2 files changed

+114
-2
lines changed

2 files changed

+114
-2
lines changed

CHANGELOG.md

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,91 @@
1+
# 1.9.0-alpha02 (June 2025)
2+
3+
_Changes since 1.8.1_
4+
5+
## Highlights
6+
7+
### Multiple Platforms
8+
9+
- `material3` library now includes new experimental `MaterialExpressiveTheme` [#2127](https://github.com/JetBrains/compose-multiplatform-core/pull/2127)
10+
11+
## Migration Notes
12+
13+
### Gradle Plugin
14+
15+
- The Compose Gradle plugin requires the Kotlin Gradle plugin version 2.+ now. Old `org.jetbrains.compose.compiler` is not supported anymore and the API to configure it was removed [#5283](https://github.com/JetBrains/compose-multiplatform/pull/5283)
16+
17+
## Features
18+
19+
### Multiple Platforms
20+
21+
- Adopted a change in `ComposeUiTest` API. The `block` in `runComposeUiTest` is `suspend` now. It allows to call `awaitIdle` and other suspend functions. It ensures a correct execution of a test on all platforms. See the web specifics in `kotlinx.coroutines.test.runTest` [documentation](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/run-test.html) [#2066](https://github.com/JetBrains/compose-multiplatform-core/pull/2066)
22+
23+
### iOS
24+
25+
- Add support for native IME configuration with `PlatformImeOptions` [#2108](https://github.com/JetBrains/compose-multiplatform-core/pull/2108)
26+
27+
### Desktop
28+
29+
- Add accessibility role for `Switch`, reporting it as a checkbox [#2136](https://github.com/JetBrains/compose-multiplatform-core/pull/2136)
30+
31+
## Fixes
32+
33+
### Multiple Platforms
34+
35+
- Fixed `TextField(TextFieldValue)` when used with a visual transformation with a non-identity offset mapping (potentially even crashing) [#2117](https://github.com/JetBrains/compose-multiplatform-core/pull/2117)
36+
- Fixed a memory leak and performance degradation when `ComposeUiFlags.isRectTrackingEnabled` set to `true` (default) [#2112](https://github.com/JetBrains/compose-multiplatform-core/pull/2112)
37+
- Support Preview parameters for Previews in common source sets in IJ and AS. Note: IDEs also need to implement support on their end. Please check the respective IDE release notes to confirm this is supported [#5319](https://github.com/JetBrains/compose-multiplatform/pull/5319)
38+
Example usage:
39+
```
40+
import androidx.compose.runtime.Composable
41+
import org.jetbrains.compose.ui.tooling.preview.Preview
42+
import org.jetbrains.compose.ui.tooling.preview.PreviewParameter
43+
import org.jetbrains.compose.ui.tooling.preview.PreviewParameterProvider
44+
class MyPreviewParameterProvider : PreviewParameterProvider<String> {
45+
override val values = sequenceOf("Hello, Compose!", "Hello, World!")
46+
}
47+
/**
48+
* This function will generate two preview images with different texts
49+
*/
50+
@Preview
51+
@Composable
52+
fun MyPreview(@PreviewParameter(MyPreviewParameterProvider::class) text: String) {
53+
Text(text)
54+
}
55+
```
56+
57+
### iOS
58+
59+
- Fix issue where keyboard would appear after second tap when text input session was intercepted [#2049](https://github.com/JetBrains/compose-multiplatform-core/pull/2049)
60+
61+
### Desktop
62+
63+
- [macOS] Fix the background flashing when closing a window/dialog and an animation is running [#2058](https://github.com/JetBrains/compose-multiplatform-core/pull/2058)
64+
- [macOS; JBR] Fixed the current composition in a text field being duplicated into another text field when switching focus to it [#2026](https://github.com/JetBrains/compose-multiplatform-core/pull/2026)
65+
- [macOS] Fixed strange glyph being displayed in a text field if window becomes unfocused, then focused again while there's an active composition in the text field (after pressing e.g. backspace) [#2026](https://github.com/JetBrains/compose-multiplatform-core/pull/2026)
66+
- [macOS] Fix showing the input method toolbar before any text field becomes focused (on JBR only; other runtimes continue to be buggy) [#2047](https://github.com/JetBrains/compose-multiplatform-core/pull/2047)
67+
- Improved performance for `ComposePanel` with `System.setProperty("compose.swing.render.on.graphics", "true")` [#2097](https://github.com/JetBrains/compose-multiplatform-core/pull/2097)
68+
- Fix the positioning of the IME popup being too far away from the text, on screens with density greater than 1 [#2118](https://github.com/JetBrains/compose-multiplatform-core/pull/2118)
69+
- Fixed the position of the IME popup, which was below the previous, rather than the current, cursor position [#2122](https://github.com/JetBrains/compose-multiplatform-core/pull/2122)
70+
71+
## Dependencies
72+
73+
- Gradle Plugin `org.jetbrains.compose`, version `1.9.0-alpha02`. Based on Jetpack Compose libraries:
74+
- [Runtime 1.9.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.9.0-alpha03)
75+
- [UI 1.9.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.0-alpha03)
76+
- [Foundation 1.9.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.9.0-alpha03)
77+
- [Material 1.9.0-alpha03](https://developer.android.com/jetpack/androidx/releases/compose-material#1.9.0-alpha03)
78+
- [Material3 1.4.0-alpha15](https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0-alpha15)
79+
80+
- Graphics-Shapes library `org.jetbrains.androidx.graphics:graphics-shapes:1.0.0-alpha08`. Based on [Jetpack Graphics-Shapes 1.0.1](https://developer.android.com/jetpack/androidx/releases/graphics#graphics-shapes-#1.0.1)
81+
- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:2.9.0`. Based on [Jetpack Lifecycle 2.9.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0)
82+
- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:1.2.0-alpha02`. Based on [Jetpack Material3 Adaptive 1.2.0-alpha06](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.2.0-alpha06)
83+
- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:2.9.0-beta02`. Based on [Jetpack Navigation 2.9.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.0)
84+
- Savedstate library `org.jetbrains.androidx.savedstate:savedstate:1.3.0`. Based on [Jetpack Savedstate 1.3.0](https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0)
85+
- WindowManager Core library `org.jetbrains.androidx.window:window-core:1.4.0-alpha07`. Based on [Jetpack WindowManager 1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0)
86+
87+
---
88+
189
# 1.8.1 (May 2025)
290

391
_Changes since 1.8.0_

tools/changelog/changelog.main.kts

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,12 +130,18 @@ fun generateChangelog() {
130130
val versionComposeMaterial3Adaptive = formatAndroidxLibVersion("COMPOSE_MATERIAL3_ADAPTIVE")
131131
val versionLifecycle = formatAndroidxLibVersion("LIFECYCLE")
132132
val versionNavigation = formatAndroidxLibVersion("NAVIGATION")
133+
val versionSavedstate = formatAndroidxLibVersion("SAVEDSTATE")
134+
val versionGraphicsShapes = formatAndroidxLibVersion("GRAPHICS_SHAPES")
135+
val versionWindow = formatAndroidxLibVersion("WINDOW")
133136

134137
val versionRedirectingCompose = formatAndroidxLibRedirectingVersion("compose")
135138
val versionRedirectingComposeMaterial3 = formatAndroidxLibRedirectingVersion("compose.material3")
136139
val versionRedirectingComposeMaterial3Adaptive = formatAndroidxLibRedirectingVersion("compose.material3.adaptive")
137140
val versionRedirectingLifecycle = formatAndroidxLibRedirectingVersion("lifecycle")
138141
val versionRedirectingNavigation = formatAndroidxLibRedirectingVersion("navigation")
142+
val versionRedirectingSavedstate = formatAndroidxLibRedirectingVersion("savedstate")
143+
val versionRedirectingGraphicsShapes = formatAndroidxLibRedirectingVersion("graphics")
144+
val versionRedirectingWindow = formatAndroidxLibRedirectingVersion("window")
139145

140146
val versionName = versionCompose
141147

@@ -208,9 +214,12 @@ fun generateChangelog() {
208214
- [Material $versionRedirectingCompose](https://developer.android.com/jetpack/androidx/releases/compose-material#$versionRedirectingCompose)
209215
- [Material3 $versionRedirectingComposeMaterial3](https://developer.android.com/jetpack/androidx/releases/compose-material3#$versionRedirectingComposeMaterial3)
210216
217+
- Graphics-Shapes library `org.jetbrains.androidx.graphics:graphics-shapes:$versionGraphicsShapes`. Based on [Jetpack Graphics-Shapes $versionRedirectingGraphicsShapes](https://developer.android.com/jetpack/androidx/releases/graphics#graphics-shapes-#$versionRedirectingGraphicsShapes)
211218
- Lifecycle libraries `org.jetbrains.androidx.lifecycle:lifecycle-*:$versionLifecycle`. Based on [Jetpack Lifecycle $versionRedirectingLifecycle](https://developer.android.com/jetpack/androidx/releases/lifecycle#$versionRedirectingLifecycle)
212-
- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:$versionNavigation`. Based on [Jetpack Navigation $versionRedirectingNavigation](https://developer.android.com/jetpack/androidx/releases/navigation#$versionRedirectingNavigation)
213219
- Material3 Adaptive libraries `org.jetbrains.compose.material3.adaptive:adaptive*:$versionComposeMaterial3Adaptive`. Based on [Jetpack Material3 Adaptive $versionRedirectingComposeMaterial3Adaptive](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#$versionRedirectingComposeMaterial3Adaptive)
220+
- Navigation libraries `org.jetbrains.androidx.navigation:navigation-*:$versionNavigation`. Based on [Jetpack Navigation $versionRedirectingNavigation](https://developer.android.com/jetpack/androidx/releases/navigation#$versionRedirectingNavigation)
221+
- Savedstate library `org.jetbrains.androidx.savedstate:savedstate:$versionSavedstate`. Based on [Jetpack Savedstate $versionRedirectingSavedstate](https://developer.android.com/jetpack/androidx/releases/savedstate#$versionRedirectingSavedstate)
222+
- WindowManager Core library `org.jetbrains.androidx.window:window-core:$versionWindow`. Based on [Jetpack WindowManager $versionRedirectingWindow](https://developer.android.com/jetpack/androidx/releases/window#$versionRedirectingWindow)
214223
215224
---
216225
""".trimIndent()
@@ -423,6 +432,15 @@ fun entriesForRepo(repo: String, firstCommit: String, lastCommit: String): List<
423432
.mapNotNull(shaToPull::get)
424433
.replaceCherryPicks()
425434

435+
// Exclude the same entries for partial cherry-picked PRs (example https://github.com/JetBrains/compose-multiplatform-core/pull/2096)
436+
val cherryPickedIdsInFirstCommit = cherryPickedPrsInFirstCommit
437+
.flatMap {
438+
pullToReleaseNotes[it]?.entries.orEmpty()
439+
}
440+
.mapTo(mutableSetOf()) {
441+
it.id
442+
}
443+
426444
return gitLogShas(repoFolder, firstCommit, lastCommit, "--cherry-pick --right-only")
427445
.reversed() // older changes are at the bottom
428446
.mapNotNull(shaToPull::get)
@@ -432,6 +450,7 @@ fun entriesForRepo(repo: String, firstCommit: String, lastCommit: String): List<
432450
.flatMap {
433451
pullToReleaseNotes[it]?.entries ?: it.unknownChangelogEntries()
434452
}
453+
.filterNot { it.id in cherryPickedIdsInFirstCommit }
435454
}
436455

437456
/**
@@ -549,7 +568,12 @@ data class ChangelogEntry(
549568
val prNumber: Int,
550569
val link: String?,
551570
val isPrerelease: Boolean,
552-
)
571+
) {
572+
/**
573+
* Unique entry id used for excluding cherry-picked entries
574+
*/
575+
val id: UUID = UUID.nameUUIDFromBytes((section + subsection + message).toByteArray(Charsets.UTF_8))
576+
}
553577

554578
fun ChangelogEntry.sectionOrder(): Int = section?.let(standardSections::indexOf) ?: standardSections.size
555579
fun ChangelogEntry.subsectionOrder(): Int = subsection?.let(standardSubsections::indexOf) ?: standardSubsections.size

0 commit comments

Comments
 (0)