Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds the Compose Stability Analyzer plugin to the project and restructures the build configuration of several modules to use a more modern Kotlin Multiplatform (KMP) approach. Note that the PR title contains a spelling error: "Compost" should be "Compose".
Key changes:
- Adds the stability analyzer plugin to Compose modules (app, aboutlibraries-compose, aboutlibraries-compose-m3, aboutlibraries-compose-m2)
- Migrates aboutlibraries-core and compose modules to use
androidKmpLibraryplugin with Android configuration inside thekotlin {}block - Updates version catalog to 0.10.4 and disables Gradle configuration on demand
Reviewed changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| settings.gradle.kts | Bumps version catalog from 0.10.3 to 0.10.4 |
| gradle.properties | Disables configuration on demand (was enabled) |
| build.gradle.kts | Adds androidKmpLibrary and stabilityAnalyzer plugin declarations |
| app/build.gradle.kts | Applies stabilityAnalyzer plugin to app module |
| aboutlibraries/build.gradle.kts | Changes from kotlin-multiplatform to kotlin convention plugin |
| aboutlibraries-core/build.gradle.kts | Restructures to use androidKmpLibrary with Android config inside kotlin block |
| aboutlibraries-compose/build.gradle.kts | Migrates to androidKmpLibrary pattern and adds stabilityAnalyzer plugin |
| aboutlibraries-compose-m3/build.gradle.kts | Migrates to androidKmpLibrary pattern, adds stabilityAnalyzer, removes screenshot plugin |
| aboutlibraries-compose-m2/build.gradle.kts | Migrates to androidKmpLibrary pattern, adds stabilityAnalyzer, removes screenshot plugin |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| android { | ||
| namespace = "com.mikepenz.aboutlibraries.ui.compose.m3" | ||
| compileSdk = baseLibs.versions.compileSdk.get().toInt() | ||
| minSdk = project.readPropertyOrElse("com.mikepenz.android.minSdk", "${baseLibs.versions.minSdk.get().toInt()}", null).toString().toInt() |
There was a problem hiding this comment.
The minSdk conversion logic is unnecessarily complex and redundant. The expression first converts to Int, then to String, then back to Int. This should be simplified to just project.readPropertyOrElse("com.mikepenz.android.minSdk", baseLibs.versions.minSdk.get(), null).toInt() or similar, removing the intermediate string conversion.
| minSdk = project.readPropertyOrElse("com.mikepenz.android.minSdk", "${baseLibs.versions.minSdk.get().toInt()}", null).toString().toInt() | |
| minSdk = project.readPropertyOrElse("com.mikepenz.android.minSdk", baseLibs.versions.minSdk.get(), null).toInt() |
| android { | ||
| namespace = "com.mikepenz.aboutlibraries.ui.compose" | ||
| compileSdk = baseLibs.versions.compileSdk.get().toInt() | ||
| minSdk = project.readPropertyOrElse("com.mikepenz.android.minSdk", "${baseLibs.versions.minSdk.get().toInt()}", null).toString().toInt() |
There was a problem hiding this comment.
The minSdk conversion logic is unnecessarily complex and redundant. The expression first converts to Int, then to String, then back to Int. This should be simplified to just project.readPropertyOrElse("com.mikepenz.android.minSdk", baseLibs.versions.minSdk.get(), null).toInt() or similar, removing the intermediate string conversion.
| minSdk = project.readPropertyOrElse("com.mikepenz.android.minSdk", "${baseLibs.versions.minSdk.get().toInt()}", null).toString().toInt() | |
| minSdk = project.readPropertyOrElse("com.mikepenz.android.minSdk", baseLibs.versions.minSdk.get(), null).toInt() |
| kotlin { | ||
| applyDefaultHierarchyTemplate() | ||
|
|
||
|
|
There was a problem hiding this comment.
There is an unnecessary blank line here. This empty line should be removed to maintain consistent code formatting.
aboutlibraries-core/build.gradle.kts
Outdated
| android { | ||
| namespace = "com.mikepenz.aboutlibraries.core" | ||
| compileSdk = baseLibs.versions.compileSdk.get().toInt() | ||
| minSdk = project.readPropertyOrElse("com.mikepenz.android.minSdk", "${baseLibs.versions.minSdk.get().toInt()}", null).toString().toInt() |
There was a problem hiding this comment.
The minSdk conversion logic is unnecessarily complex and redundant. The expression first converts to Int, then to String, then back to Int. This should be simplified to just project.readPropertyOrElse("com.mikepenz.android.minSdk", baseLibs.versions.minSdk.get(), null).toInt() or similar, removing the intermediate string conversion.
| minSdk = project.readPropertyOrElse("com.mikepenz.android.minSdk", "${baseLibs.versions.minSdk.get().toInt()}", null).toString().toInt() | |
| minSdk = project.readPropertyOrElse("com.mikepenz.android.minSdk", baseLibs.versions.minSdk.get(), null).toInt() |
| android { | ||
| namespace = "com.mikepenz.aboutlibraries.ui.compose.core" | ||
| compileSdk = baseLibs.versions.compileSdk.get().toInt() | ||
| minSdk = project.readPropertyOrElse("com.mikepenz.android.minSdk", "${baseLibs.versions.minSdk.get().toInt()}", null).toString().toInt() |
There was a problem hiding this comment.
The minSdk conversion logic is unnecessarily complex and redundant. The expression first converts to Int, then to String, then back to Int. This should be simplified to just project.readPropertyOrElse("com.mikepenz.android.minSdk", baseLibs.versions.minSdk.get(), null).toInt() or similar, removing the intermediate string conversion.
| minSdk = project.readPropertyOrElse("com.mikepenz.android.minSdk", "${baseLibs.versions.minSdk.get().toInt()}", null).toString().toInt() | |
| minSdk = project.readPropertyOrElse("com.mikepenz.android.minSdk", baseLibs.versions.minSdk.get(), null).toInt() |
fd3f58b to
0ba8108
Compare
Add compose stability plugin – https://github.com/skydoves/compose-stability-analyzer