-
Notifications
You must be signed in to change notification settings - Fork 3
Housekeep: Update dependencies #127
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
Conversation
- Updated various dependencies to their latest versions. - Enabled Dokka V2 plugin mode. - Updated Dokka configuration to use the new HTML plugin configuration DSL. - Replaced `Icons.Filled.ArrowBack` with `Icons.AutoMirrored.Filled.ArrowBack`.
WalkthroughThe PR changes the icon import and usage in ThirdScreenUi from Sequence Diagram(s)sequenceDiagram
participant User
participant ThirdScreenUi
participant Icons
User->>ThirdScreenUi: Open screen
Note right of ThirdScreenUi #e6f7ff: Top app bar requests nav icon
ThirdScreenUi->>Icons: Request AutoMirrored.Filled.ArrowBack
Icons-->>ThirdScreenUi: Return auto-mirrored arrow icon
ThirdScreenUi-->>User: Render top app bar with returned icon
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
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.
Actionable comments posted: 2
🧹 Nitpick comments (2)
androidApp/src/main/kotlin/app/futured/kmptemplate/android/ui/screen/ThirdScreenUi.kt (1)
12-12: Remove the now-unused import.Because the code still references the icon via
Icons.AutoMirrored.Filled.ArrowBack, the explicit import ofArrowBackis never used and will trigger an “unused import” warning.
Either drop this import line or switch the call site to the short formIcon(ArrowBack, …).-import androidx.compose.material.icons.automirrored.filled.ArrowBackshared/feature/build.gradle.kts (1)
88-97: Relative paths may break when project layout changes.
layout.projectDirectory.dir("../../doc/documentation/html")and the stylesheet path assume the module will always live two levels below the repo root.
If the module is moved or renamed, Dokka will silently generate into a non-existent folder.Consider anchoring the output to
rootProject.layout.projectDirectory(or a Gradle property) instead of string-based../...- dokkaPublications.html { - outputDirectory.set(layout.projectDirectory.dir("../../doc/documentation/html")) - } + dokkaPublications.html { + outputDirectory.set(rootProject.layout.projectDirectory.dir("doc/documentation/html")) + }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
androidApp/src/main/kotlin/app/futured/kmptemplate/android/ui/screen/ThirdScreenUi.kt(2 hunks)gradle.properties(1 hunks)gradle/libs.versions.toml(1 hunks)shared/feature/build.gradle.kts(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: check-android / Lint & Tests
- GitHub Check: check-ios / Test
🔇 Additional comments (2)
gradle/libs.versions.toml (1)
2-4: Verify tool-chain compatibility after bumping AGP & Kotlin.Jumping to AGP 8.10.1 and Kotlin 2.1.20 in one step may break the Compose compiler and KSP if matching versions are not yet published.
Please run a quick build on CI before merging or downgrade to the latest stable pair known to work (currently 8.5.x / 2.0.x for many teams).gradle.properties (1)
26-29: Enabling Dokka V2 is experimental—confirm build stability.
org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabledopt-in may introduce breaking changes (configuration DSL, output paths, etc.).
Make sure every module builds its docs on CI; otherwise pin Dokka to V1 until V2 leaves experimental status.
| navigationIcon = { | ||
| IconButton(onClick = { actions.onBack() }) { | ||
| Icon(Icons.Filled.ArrowBack, contentDescription = null) | ||
| Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = null) |
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.
🛠️ Refactor suggestion
Provide an explicit content description for accessibility.
Passing null silences accessibility tools. Supply a short, localised string such as "Back" (or reuse an MR string) so TalkBack/VoiceOver can announce the action.
-Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = null)
+Icon(
+ Icons.AutoMirrored.Filled.ArrowBack,
+ contentDescription = kmpStringResource(MR.strings.back_cd)
+)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = null) | |
| Icon( | |
| Icons.AutoMirrored.Filled.ArrowBack, | |
| contentDescription = kmpStringResource(MR.strings.back_cd) | |
| ) |
🤖 Prompt for AI Agents
In
androidApp/src/main/kotlin/app/futured/kmptemplate/android/ui/screen/ThirdScreenUi.kt
at line 55, the Icon composable has a null contentDescription which disables
accessibility announcements. Replace the null with a meaningful, localized
string such as "Back" or use a string resource from the MR strings to provide an
explicit content description for screen readers.
| androidxLifecycle = "2.9.1" | ||
| androidxComposeBom = "2025.06.01" | ||
| jetbrainsComposeRuntime = "1.8.2" # Needs to align with version in Compose BOM as closely as possible | ||
| androidxActivity = "1.10.1" | ||
| decompose = "3.3.0" |
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.
🛠️ Refactor suggestion
Possible mismatch between Compose BOM (2025.06.01) and runtime (1.8.2).
The comment says the JetBrains runtime “needs to align with” the BOM, but these numbers look far apart and may trigger runtime/ABI conflicts at compile time.
Consider either:
• dropping an explicit version for jetbrains-compose-runtime and letting the BOM control it, or
• updating it to the 2025.x artifact line if it exists.
🤖 Prompt for AI Agents
In gradle/libs.versions.toml around lines 6 to 10, the version of
jetbrainsComposeRuntime (1.8.2) does not align with the androidxComposeBom
version (2025.06.01), risking runtime or ABI conflicts. To fix this, either
remove the explicit version for jetbrainsComposeRuntime so it inherits the
version from the BOM, or update jetbrainsComposeRuntime to a version that
matches the 2025.x artifact line if available.
This commit removes Dokka plugin configuration from `gradle.properties`, `shared/feature/build.gradle.kts`, and `gradle/libs.versions.toml`. The specific changes include: - Removing `org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled` from `gradle.properties`. - Removing Dokka plugin declaration and its configuration block from `shared/feature/build.gradle.kts`. - Removing Dokka plugin alias and its version from `gradle/libs.versions.toml`.
# Conflicts: # gradle/libs.versions.toml
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.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
gradle/libs.versions.toml (2)
131-131: Ktor 3.x incompatibility: remove deprecated ktor-client-serialization.
In Ktor 3, serialization goes via ContentNegotiation + ktor-serialization-kotlinx-json. Keeping ktor-client-serialization can cause resolution errors.Apply:
- network-ktor-client-serialization = { group = "io.ktor", name = "ktor-client-serialization", version.ref = "ktor" }And in the bundle:
ktorfit = [ "network-ktorfit-lib", "network-ktorfit-converters", "network-ktor-client-contentNegotiation", - "network-ktor-client-serialization", "network-ktor-client-logging", "network-ktor-serialization-kotlinx-json", ]Also applies to: 187-194
60-69: Declare and bundle the extended Material icons dependency
Add thematerial-icons-extendedalias and include it in thecomposebundle soIcons.AutoMirrored.Filled.ArrowBackresolves:# Compose … androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" } +androidx-compose-material-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended" } [bundles] compose = [ "androidx-compose-runtime", "androidx-compose-foundation", "androidx-compose-ui", "androidx-compose-ui-tooling", "androidx-compose-ui-tooling-preview", - "androidx-compose-material3" + "androidx-compose-material3", + "androidx-compose-material-icons-extended" ]
♻️ Duplicate comments (1)
gradle/libs.versions.toml (1)
7-9: Compose stack alignment: avoid mixing AndroidX BOM (2025.06.01) with JB Compose runtime 1.8.2.
This can cause ABI/runtime drift on shared codepaths. Either drop JB runtime if unused, or gate it to non-Android targets, or introduce a JB Compose BOM and let it manage versions.Option A — remove JB runtime if unused:
-jetbrainsComposeRuntime = "1.8.2" # Needs to align with version in Compose BOM as closely as possible ... -jetbrains-compose-runtime = { group = "org.jetbrains.compose.runtime", name = "runtime", version.ref = "jetbrainsComposeRuntime" }Option B — use JB Compose BOM (then omit explicit version on JB runtime and import the BOM in modules):
+[versions] +jetbrainsCompose = "1.8.2" ... +[libraries] +jetbrains-compose-bom = { group = "org.jetbrains.compose", name = "compose-bom", version.ref = "jetbrainsCompose" } -jetbrains-compose-runtime = { group = "org.jetbrains.compose.runtime", name = "runtime", version.ref = "jetbrainsComposeRuntime" } +jetbrains-compose-runtime = { group = "org.jetbrains.compose.runtime", name = "runtime" }To confirm actual usage:
#!/bin/bash rg -nP -C2 '\borg\.jetbrains\.compose\.runtime\b'Also applies to: 67-69
🧹 Nitpick comments (1)
gradle/libs.versions.toml (1)
90-94: Decompose extensions artifact per Compose stack.
If JB Compose is used on Desktop/common, consider adding the jetbrains-specific extensions artifact and wiring it in the respective targets.+decompose-compose-ext-jetbrains = { group = "com.arkivanov.decompose", name = "extensions-compose-jetbrains", version.ref = "decompose" }Then apply per-target deps accordingly.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
gradle/libs.versions.toml(1 hunks)
🔇 Additional comments (1)
gradle/libs.versions.toml (1)
2-2: AGP bump to 8.11.1 looks good; resolves Danger warning.
Change aligns with the bot’s suggestion that 8.11.1 is available.
| kotlin = "2.1.20" | ||
| ksp = "2.1.20-1.0.32" # Must be compatible with: `kotlin` | ||
| desugarLibs = "2.1.5" |
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.
💡 Verification agent
🧩 Analysis chain
Version compatibility sanity check (Kotlin 2.1.20 ⇄ KSP, Coroutines, Serialization).
These triples often have tight matrix constraints; please confirm published compat notes.
If any mismatch is reported, bump/downgrade to the nearest compatible set.
Also applies to: 14-16, 24-24
🌐 Web query:
Are KSP 1.0.32, kotlinx-coroutines 1.10.2, and kotlinx-serialization 1.8.0 compatible with Kotlin 2.1.20?
💡 Result:
Short answer — mostly yes, with one recommended upgrade:
-
KSP 1.0.32: compatible — there are KSP 1.0.32 artifacts published for Kotlin 2.1.20 (e.g. symbol-processing-aa-embeddable 2.1.20-1.0.32). [1]
-
kotlinx-coroutines 1.10.2: compatible — 1.10.2 was released in Apr 2025 and is published to work with recent Kotlin 2.1.x toolchain (used in dependency coordinates). Use the 1.10.2 artifacts that match your JVM/JS/Native targets. [2][3]
-
kotlinx-serialization 1.8.0: not officially targeted at Kotlin 2.1.20. v1.8.0 used Kotlin 2.1.0 by default (supports up to 2.1.10 per its release notes); the project published v1.8.1 to update support to Kotlin 2.1.20. Recommendation: upgrade serialization to 1.8.1 when using Kotlin 2.1.20. [4][5]
Sources:
- Maven listing for KSP 1.0.32 artifact (symbol-processing-aa-embeddable 2.1.20-1.0.32). [turn2search2]
- kotlinx.coroutines 1.10.2 release notes. [turn3search1]
- kotlinx.coroutines Maven coordinates (1.10.2). [turn3search2]
- kotlinx.serialization releases (1.8.0 / 1.8.1 notes). [turn0search2]
- kotlinx.serialization README / setup page (plugin/library versioning guidance). [turn0search1]
Upgrade kotlinx-serialization to 1.8.1 for full Kotlin 2.1.20 support
KSP 2.1.20-1.0.32 and kotlinx-coroutines 1.10.2 are already compatible with Kotlin 2.1.20, but kotlinx-serialization 1.8.0 only targets up to Kotlin 2.1.10—bump it to 1.8.1.
🤖 Prompt for AI Agents
In gradle/libs.versions.toml around lines 3 to 5, the project currently uses
kotlinx-serialization 1.8.0 which only targets up to Kotlin 2.1.10; update the
kotlinx-serialization version to 1.8.1 to ensure full compatibility with Kotlin
2.1.20 — locate the kotlinx-serialization entry (or add it if missing) and set
its value to "1.8.1", then run a quick dependency refresh/build to verify there
are no resolution conflicts.
| @@ -1,44 +1,43 @@ | |||
| [versions] | |||
| agp = "8.11.0" | |||
| agp = "8.11.1" | |||
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.
| A newer version of com.android.application than 8.11.1 is available: 8.12.2 |
| @@ -1,44 +1,43 @@ | |||
| [versions] | |||
| agp = "8.11.0" | |||
| agp = "8.11.1" | |||
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.
| A newer version of com.android.library than 8.11.1 is available: 8.12.2 |
| @@ -1,44 +1,43 @@ | |||
| [versions] | |||
| agp = "8.11.0" | |||
| agp = "8.11.1" | |||
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.
| A newer version of com.android.test than 8.11.1 is available: 8.12.2 |
The `ktor-client-serialization` dependency is no longer needed as its functionality is covered by `ktor-client-content-negotiation`. This commit removes: - The `network-ktor-client-serialization` alias from `gradle/libs.versions.toml`. - The `network-ktor-client-serialization` entry from the `network` bundle in `gradle/libs.versions.toml`.
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.
Actionable comments posted: 1
♻️ Duplicate comments (1)
gradle/libs.versions.toml (1)
24-24: Bump kotlinx-serialization to 1.8.1 for Kotlin 2.1.20 compatibility.1.8.0 targets up to Kotlin 2.1.10; 1.8.1 aligns with 2.1.20. Recommend upgrading.
Apply:
- k otlinx-serialization = "1.8.0" # Must be compatible with: `kotlin` + kotlinx-serialization = "1.8.1" # Must be compatible with: `kotlin`Verify with:
Does kotlinx-serialization 1.8.1 officially support Kotlin 2.1.20?
🧹 Nitpick comments (1)
gradle/libs.versions.toml (1)
7-8: Clarify JetBrains Compose vs AndroidX BOM — remove misleading alignment note.JetBrains Compose (org.jetbrains.compose.runtime: 1.8.2) is versioned independently from AndroidX Compose and not governed by the AndroidX BOM. Keep it explicitly pinned; drop the “Needs to align…” remark to avoid confusion.
- jetbrainsComposeRuntime = "1.8.2" # Needs to align with version in Compose BOM as closely as possible + jetbrainsComposeRuntime = "1.8.2" # JetBrains Compose is independent of the AndroidX Compose BOM
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
gradle/libs.versions.toml(1 hunks)
🔇 Additional comments (2)
gradle/libs.versions.toml (2)
171-178: Compose bundle wiring looks correct with BOM-managed versions.Using BOM-scoped artifacts without explicit versions is the right setup.
186-192: Good: Ktorfit bundle explicitly includes Ktor serialization module.Separation of converters and kotlinx-json serialization matches Ktor 3.x best practices.
| @@ -1,44 +1,43 @@ | |||
| [versions] | |||
| agp = "8.11.0" | |||
| agp = "8.11.1" | |||
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.
💡 Verification agent
🧩 Analysis chain
Consider AGP 8.12.2 once toolchain compatibility is confirmed.
Danger notes a newer AGP. Validate Gradle and Kotlin plugin compatibility before bumping.
🌐 Web query:
What are the Kotlin (2.1.20) and Gradle compatibility requirements for Android Gradle Plugin 8.12.2?
💡 Result:
Short answer: Kotlin 2.1.20 is not compatible with AGP 8.12.2.
Details:
- Kotlin 2.1.20 (KGP 2.1.20) supports Gradle 7.6.3–8.11 and AGP 7.4.2–8.7.2. [1][2]
- Android Gradle Plugin 8.12.x requires Gradle 8.13 (AGP 8.12 → Gradle 8.13). [3]
So AGP 8.12.2 (which requires Gradle 8.13) lies outside the AGP/Gradle ranges officially supported by Kotlin 2.1.20. [1][3]
Sources:
[1] Kotlin compatibility table / docs for 2.1.20.
[2] Kotlin “what’s new” (Kotlin 2.1.20) — Gradle compatibility note.
[3] Android Gradle Plugin release notes / compatibility table (AGP 8.12 → Gradle 8.13).
Hold AGP upgrade to 8.12.2
Kotlin 2.1.20 supports AGP only up to 8.7.2 and Gradle up to 8.11, whereas AGP 8.12.2 requires Gradle 8.13 (unsupported by Kotlin 2.1.20). Delay the bump until the Kotlin plugin adds Gradle 8.13 support.
🤖 Prompt for AI Agents
In gradle/libs.versions.toml around line 2, do not upgrade AGP to 8.12.2; keep
the agp version at the current supported value (leave as "8.11.1" or revert to
the previous repo value) because Kotlin 2.1.20 does not support the Gradle 8.13
requirement of AGP 8.12.2; hold the bump until the Kotlin plugin adds Gradle
8.13 support and optionally add a short inline comment noting the compatibility
constraint.
Generated by 🚫 Danger |
| alias(libs.plugins.kotlin.multiplatform) | ||
| alias(libs.plugins.compose.compiler) | ||
| alias(libs.plugins.kotlin.serialization) | ||
| alias(libs.plugins.dokka) |
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.
Remove also from libs.versions.toml
Icons.Filled.ArrowBackwithIcons.AutoMirrored.Filled.ArrowBack.Summary by CodeRabbit
Style
Chores