Skip to content

build: hold Kotlin at 2.3.21 so consumers on 2.3.x can read our klibs#55

Merged
jamesarich merged 1 commit into
mainfrom
kotlin-2.3-bridge
Jun 10, 2026
Merged

build: hold Kotlin at 2.3.21 so consumers on 2.3.x can read our klibs#55
jamesarich merged 1 commit into
mainfrom
kotlin-2.3-bridge

Conversation

@jamesarich

Copy link
Copy Markdown
Collaborator

Why

v0.3.7 was built with Kotlin 2.4.0 (#52), which stamps every published klib with ABI version 2.4.0. Kotlin 2.3.x consumers hard-reject those:

w: KLIB resolver: Skipping '...mqtt-client-iossimulatorarm64/0.3.7/...': incompatible ABI version '2.4.0'
The current Kotlin compiler can consume libraries having ABI version <= '2.3.0'.

Meshtastic-Android is pinned to Kotlin 2.3.21 until the Koin compiler plugin supports 2.4 (InsertKoinIO/koin#2431). Its mqtt-client 0.3.7 bump therefore fails CI (meshtastic/Meshtastic-Android#5763), which blocks the TLS pump crash fix (#54) — currently the top production crash in the Android app — from shipping.

What

Kotlin 2.3.21 + CMP 1.11.1 was the CI-green state on main immediately before #52. Verified locally: spotlessCheck detekt jvmTest apiCheck (the release gate) plus :library:compileKotlinIosSimulatorArm64 and :library:compileKotlinWasmJs all pass; no kotlin-js-store churn.

Release plan

After merge, tag v0.3.8 — Renovate then updates meshtastic/Meshtastic-Android#5763 to 0.3.8 and it goes green.

Drop the hold and re-bump Kotlin once Meshtastic-Android lands meshtastic/Meshtastic-Android#5760.

🤖 Generated with Claude Code

v0.3.7 was built with Kotlin 2.4.0 (#52), which stamps every published
klib with ABI version 2.4.0. Kotlin 2.3.x consumers hard-reject those:

  The current Kotlin compiler can consume libraries having ABI version <= '2.3.0'.

Meshtastic-Android is pinned to Kotlin 2.3.21 until the Koin compiler
plugin supports 2.4 (InsertKoinIO/koin#2431), so its mqtt-client bump
fails CI (meshtastic/Meshtastic-Android#5763) and the TLS pump crash fix
(#54) can't reach production.

Revert the toolchain to 2.3.21 and add a Renovate hold so it can't creep
back. The next release (v0.3.8) re-ships everything since v0.3.6 — the
protobufs SDK migration (#50) and the TLS transport fix (#54) — on a
2.3-compatible toolchain. Kotlin 2.3.21 + CMP 1.11.1 was the CI-green
state on main immediately before #52, and the full gate passes here:
spotlessCheck detekt jvmTest apiCheck + iOS/wasm compile.

Drop the hold and re-bump once Meshtastic-Android lands Kotlin 2.4
(meshtastic/Meshtastic-Android#5760).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@jamesarich jamesarich merged commit 4bc8d30 into main Jun 10, 2026
13 of 16 checks passed
@jamesarich jamesarich deleted the kotlin-2.3-bridge branch June 10, 2026 16:34
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.

1 participant