Skip to content

chore: update kotlin and compose bom - #1121

Merged
ovitrif merged 1 commit into
synonymdev:masterfrom
guzino:chore/kotlin-compose-upgrade
Jul 31, 2026
Merged

chore: update kotlin and compose bom#1121
ovitrif merged 1 commit into
synonymdev:masterfrom
guzino:chore/kotlin-compose-upgrade

Conversation

@guzino

@guzino guzino commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Closes #1115

This PR moves Kotlin to 2.3.21 and Compose to the 2026.06.01 BOM on the current AGP 8.13.2 baseline.

Description

AGP 8.13.2 is the supported baseline for Kotlin 2.3, so the language and Compose set land here first and #1114 consumes them before touching AGP, Gradle, KSP and Hilt. 2.3.21 is the floor that satisfies the #1114 matrix: KSP 2.3.10 is published against Kotlin 2.3.20, and AGP 9 built-in Kotlin cannot compile 2.2.21 at all, measured on #1114.

The stability analyzer plugin has to move with Kotlin, and its version is constrained from both sides. 0.6.6 throws NoSuchMethodError on a removed IR declaration origin under Kotlin 2.3. 0.8.0 and 0.12.0 pull AGP 9.3.1 onto the plugin classpath, which fails the AGP version check on Gradle 8.13 and would silently override a pinned AGP version later. 0.7.5 targets Kotlin 2.3.21 and leaves AGP alone.

Selected set, all stable releases:

Component From To
Kotlin, Compose compiler and serialization plugins 2.2.21 2.3.21
Kotlin BOM 2.2.21 2.3.21
Compose BOM 2025.12.01 2026.06.01
Compose stability analyzer 0.6.6 0.7.5
AGP 8.13.2 unchanged
KSP 2.3.2 unchanged
  • Updates the shared Kotlin catalog version, which drives the Compose compiler plugin, the serialization plugin and the Kotlin BOM through version.ref.
  • Updates the Compose BOM to the latest stable release set.
  • Removes the empty Compose feature-flag set, which restated the plugin's own convention. Compose reports still generate without it.
  • Leaves KSP and Hilt untouched. Both resolve and compile against Kotlin 2.3.21, and chore: upgrade to agp 9 and configure parallelism #1114 owns moving them.
  • Requires no source, compiler-option or stability-annotation changes. The upgrade introduces no deprecated compiler flags.
  • Leaves the two follow-up issues the spec requires, docs: align kotlin and compose agent rules and refactor: adopt current kotlin language features, still to be filed and linked before chore: update kotlin and compose bom #1115 closes.

Preview

N/A

QA Notes

Manual Tests

  • 1. Android Studio → open project: Gradle sync succeeds and Compose previews render.
  • 2. regression: Wallet → scroll activity list → tap an entry → Activity Detail: rows and detail render as before.
  • 3a. regression: Send → scan LN invoice → Amount → Confirm: payment completes.
    • 3b. regression: back from Amount: in-sheet nav returns as before.
  • 4. regression: Settings → General → Payments: sheet screens open and dismiss.
  • 5. regression: Home → add and configure a widget: Glance widgets render and refresh.
  • 6. regression: switch device theme and locale while the app is open: no crash and no stale Compose state.

Automated Checks

  • No test coverage added, modified or removed. The change is version-only, so the existing suite is the regression guard.
  • Local: just compile, just test and just lint pass on Kotlin 2.3.21. The full unit suite is green.
  • detekt reports 11 findings, the same pre-existing set as master, with none in the changed files.
  • Not run locally: just build, just test android and E2E.
  • CI: standard compile, unit test and detekt checks run by the PR bot. This is a fork PR, so the run needs maintainer approval before the required checks report.

@greptile-apps

greptile-apps Bot commented Jul 31, 2026

Copy link
Copy Markdown

Greptile Summary

Updates the project’s Kotlin and Compose toolchain.

  • Moves Kotlin, its compiler plugins, and Kotlin BOM from 2.2.21 to 2.3.21.
  • Updates the Compose BOM from 2025.12.01 to 2026.06.01.
  • Aligns the Compose stability analyzer with Kotlin 2.3.21.
  • Removes the redundant empty Compose compiler feature-flag override while retaining report generation.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete changed-code defect identified.

The dependency and compiler-plugin versions are updated as a coordinated set, and the removed empty feature-flag configuration does not establish a behavioral or build failure.

Important Files Changed

Filename Overview
app/build.gradle.kts Removes the empty Compose compiler feature-flag override without changing the configured reports destination.
gradle/libs.versions.toml Updates the coordinated Kotlin, Compose BOM, and Compose stability analyzer versions with no concrete incompatibility established.

Reviews (1): Last reviewed commit: "chore: update kotlin and compose bom" | Re-trigger Greptile

@ovitrif
ovitrif self-requested a review July 31, 2026 16:33
@ovitrif ovitrif added this to the 2.5.0 milestone Jul 31, 2026
@ovitrif ovitrif self-assigned this Jul 31, 2026

@ovitrif ovitrif left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I approve this Kotlin and Compose dependency update.

  • I am treating lnurl_transfer as non-blocking because the same intermittent LnurlAuthContinue timeout occurs on pre-upgrade Kotlin and Compose builds using the same E2E revision, including runs where a retry passes with the same APK.
  • I am treating pubky_paykit as non-blocking because the E2E suite expects contact-detail navigation, while this app revision returns to the contacts screen after saving.

@ovitrif
ovitrif merged commit d744ac4 into synonymdev:master Jul 31, 2026
41 of 49 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore: update kotlin and compose bom

2 participants