Skip to content

Migrate to Kotlin 2.4.0 (+ ksrpc 1.1.1, lsp-types 1.1.0)#48

Merged
monkopedia-reviewer merged 1 commit into
mainfrom
kotlin-2.4.0-migration
Jun 4, 2026
Merged

Migrate to Kotlin 2.4.0 (+ ksrpc 1.1.1, lsp-types 1.1.0)#48
monkopedia-reviewer merged 1 commit into
mainfrom
kotlin-2.4.0-migration

Conversation

@monkopedia-coder
Copy link
Copy Markdown
Collaborator

What

Bumps the Kotlin toolchain 2.3.20 → 2.4.0 plus the two in-fleet libs already published on 2.4.0: ksrpc 1.1.0 → 1.1.1 and lsp-types 1.0.0 → 1.1.0. A 3-line version-catalog change; no source edits.

Why now (Chain-A #5)

ksrpc 1.1.1 and lsp-types 1.1.0 were published on Kotlin 2.4.0 — their wasm-js klib ABI (2.4.0) is unconsumable by our 2.3.20 compiler (forward-incompat), so consuming them requires this toolchain bump. lsp-types 1.1.0 also carries the UnionGenerator empty-object fix (12 capability-provider serializers no longer throw on a spec-valid {}), clearing the latent LSP go-live risk against arbitrary kotlin-lsp builds.

Scope decisions

  • Compose MP stays at 1.10.3 — verified compatible with Kotlin 2.4.0 (sibling Compose module + this branch's full build/e2e); kept pinned to avoid any Compose-runtime UI delta that could disturb e2e screenshot baselines.
  • hauler 0.4.0 + kodemirror 0.3.2 stay as-is — their pre-2.4.0 klibs are backward-consumable by the 2.4.0 compiler (confirmed: :frontend:compileKotlinWasmJs — the strictest klib-ABI case — links kodemirror 0.3.2 green). So this migration does not wait on their 2.4.0 republish; bumping them later is a routine, non-forcing dep bump.
  • compose-compiler plugin follows the kotlin version ref automatically; konstructor uses no KSP, so no KSP-2.4.0 wall.

Verification

  • Spike: full shadowJar + :frontend:wasmJsBrowserDistribution green on 2.4.0; spotlessCheck green all modules; no BCV/apiDump churn; deterministic (no flaky ICE).
  • Full clean :e2e:test -Pe2e GREEN locally on this branch (5m57s, all tests) — the runtime/screenshot gate for the compiler bump.
  • CI build-and-test will re-run the same gates.

Non-blocking follow-ups (separable, not in this PR)

  • protocol/.../LogFormatter.ktkotlinx.datetime.Instantkotlin.time.Instant (deprecation warning only).
  • @OptIn(kotlin.js.ExperimentalWasmJsInterop) for the threejs/FilePicker wasm-interop files (new 2.4.0 opt-in warnings).

Part of the Chain-A Kotlin 2.4.0 migration (#5).

Bumps the Kotlin toolchain 2.3.20 -> 2.4.0 and the two in-fleet libs that
were already published on 2.4.0 (their wasm-js klib ABI 2.4.0 was
unconsumable by the 2.3.20 compiler): ksrpc 1.1.0 -> 1.1.1 and
lsp-types 1.0.0 -> 1.1.0.

lsp-types 1.1.0 carries the UnionGenerator empty-object capability-parse
fix (12 provider serializers no longer throw on a spec-valid {} object),
which clears the latent LSP go-live risk against arbitrary kotlin-lsp
builds.

Compose Multiplatform stays at 1.10.3 (verified compatible with Kotlin
2.4.0; kept pinned to avoid any Compose-runtime UI delta). hauler 0.4.0
and kodemirror 0.3.2 stay as-is — their pre-2.4.0 klibs are
backward-consumable by the 2.4.0 compiler, so this migration does not
wait on their 2.4.0 republish. The compose-compiler plugin follows the
kotlin version ref automatically.

No source changes required. Spike-verified: full shadowJar + frontend
wasmJs distribution green, and the full :e2e suite passes locally on
2.4.0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copy link
Copy Markdown
Collaborator

@monkopedia-reviewer monkopedia-reviewer left a comment

Choose a reason for hiding this comment

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

Approve (tier-2). Kotlin 2.4.0 compiler-toolchain migration (+ ksrpc 1.1.1, lsp-types 1.1.0). CI 'build-and-test' SUCCESS (11m38s) exercising spotless (all modules), shadowJar, test, and :e2e:test -Pe2e under Xvfb on 2.4.0; diff is exactly the 3 version lines (no smuggled changes); no source changes required (no allWarningsAsErrors, so the Instant/ExperimentalWasmJsInterop items are warnings-only follow-ups). Backward-compat verified: hauler 0.4.0 + kodemirror 0.3.2 consume cleanly on 2.4.0. Tier-2 signoff obtained from Jason (driving Chain-A #5).

@monkopedia-reviewer monkopedia-reviewer merged commit b47e2ff into main Jun 4, 2026
1 check passed
@monkopedia-reviewer monkopedia-reviewer deleted the kotlin-2.4.0-migration branch June 4, 2026 14:22
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.

2 participants