Repository navigation
3.2.0: Compose-BOM version independence + R8 keep rules #13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -109,4 +109,24 @@ | |
| -dontnote kotlin.** | ||
| -dontnote kotlinx.** | ||
| -dontwarn sun.misc.** | ||
| -dontnote sun.misc.** | ||
| -dontnote sun.misc.** | ||
|
|
||
|
|
||
| ################################################################################ | ||
| # 7. COMPOSE VERSION INDEPENDENCE (3.1.9.1) | ||
| # | ||
| # When the consumer's compose-bom is different from the BOM the AAR was | ||
| # compiled against (2026.06.01), R8 prints "Missing class" notes for | ||
| # Compose internals that the consumer's older / newer Compose exposes | ||
| # under different names. The library only ever references Compose's | ||
| # stable public API (Density, Dp, CompositionLocal, @Composable, Modifier), | ||
| # so these notes are never real problems — silence them to keep the | ||
| # consumer's R8 output clean and avoid the appearance of a real error. | ||
| ################################################################################ | ||
|
|
||
| -dontnote androidx.compose.runtime.** | ||
| -dontnote androidx.compose.ui.** | ||
| -dontnote androidx.compose.foundation.** | ||
| -dontnote androidx.compose.animation.** | ||
| -dontwarn androidx.compose.runtime.** | ||
| -dontwarn androidx.compose.ui.** | ||
|
Comment on lines
+131
to
+132
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When a consumer actually resolves a Compose version lacking a referenced runtime or UI class—the exact mismatch this change targets—these consumer rules are merged into the entire app's release R8 invocation. Useful? React with 👍 / 👎. |
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When a consumer declares a Compose BOM older than
2026.06.01, thisimplementation(platform(...))dependency is still published on the library's runtime variant, and Gradle's conflict resolution selects the newer competing BOM. Consequently this release still upgrades older consumers to the library's BOM rather than supporting “any Compose version”; the added R8 suppressions do not change dependency resolution. The build BOM must be kept off published consumer variants, or the supported minimum Compose version must be declared instead.Useful? React with 👍 / 👎.