Skip to content

build!: migrate to Kotlin Toolchain with KMP docs and coverage - #44

Open
IRus wants to merge 3 commits into
mainfrom
migrate/kotlin-toolchain
Open

IRus wants to merge 3 commits into
mainfrom
migrate/kotlin-toolchain

Conversation

@IRus

@IRus IRus commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Replace the Gradle build with Kotlin Toolchain 0.13.0 for both kotaml libraries. Library sources and tests move to the Toolchain layout unchanged, including the latest YAML fixes from main.

  • Configure Kotlin 2.4.20, JVM 11, serialization/KSP, 17 KMP targets, signed Maven Central publication and source artifacts through the Toolchain.
  • Restore commit-pinned BCV, Kotest, ktlint, Spotless, Dokka and Kover through ktc-plugins sync in downloaded mode. Plugin source is ignored and absent from this PR; only manifests, lockfile and registration are committed. Preserve JVM/KLib validation and Node/Chromium test execution.
  • Generate KMP API documentation with local dependency types resolved, plus JVM line/branch coverage reports for each module.
  • Generate four SVG coverage badges directly from Kover XML and publish them with Kover/Dokka sites on GitHub Pages only after successful main CI. PRs validate site generation without deployment.
  • Replace CI and release instructions; retain main's prevention of duplicate branch/PR builds.

Compatibility and release notes:

  • Remove watchosX64, which Toolchain 0.13 does not support; retain all other targets.
  • Wasm artifact suffix changes from -wasm-js to -wasmjs. Root-coordinate consumers continue selecting variants through module metadata.
  • Preserve Gradle compiler module names, including qualified KLib identities and JVM internal/synthetic method suffixes. The JVM ABI baseline adds an already-existing protected method exposed by the BCV reader; library sources remain unchanged.
  • Kover measures JVM coverage. Dokka produces per-module sites; generated HTML is not attached to Maven publications. Dokka's KMP model reader is pinned to Toolchain 0.13.0.

Validation:

  • All 67 migrated library source/test files match current main byte for byte.

  • Installed plugin integrity and actionlint passed after rebasing onto main. A clean copy with no plugin source restored all six plugins from an empty external cache, passed verification and built kotaml-json for JVM.

  • Earlier migration checks passed for JVM/native/web tests, JVM/KLib ABI, formatting, local signed publication, KMP documentation and coverage.

  • Pages generator regression tests passed, including nested counters, rounding, empty metrics and incomplete report rejection; 8,983 local HTML links and all four SVGs validated.

  • After rebasing: 2,038 instrumented JVM tests passed; JS and Wasm passed for both modules (1,558 + 322 tests per target, with JS on Node and Chromium). JVM/KLib ABI and formatting checks passed.

  • PR CI covers Linux, macOS and Windows. Windows wrappers run under Windows PowerShell to keep module discovery compatible. ARM macOS runs supported simulators while Intel iOS/tvOS targets remain included in compilation/ABI checks.

  • Toolchain 0.13 launches native test binaries directly, so tvOS/watchOS tests are linked with Toolchain and run through simctl in disposable matching simulator devices. Local tvOS and watchOS runs each passed 1,558 kotaml + 322 kotaml-json tests, without skips; the runner propagates nonzero exits and uploads diagnostics. A native exit-7 probe confirmed simulator failures fail the script. The downloaded-mode CI matrix passed on Linux, Windows and macOS, including tvOS/watchOS simulator tests, at commit 1e7b687 (run 38432939947).

  • The current tree restores the explicit compiler module names and is identical to the validated 1e7b687 tree. CI is rerunning on the revert commit.

GitHub Pages is configured for Actions deployment. The first public site/badges will appear after this PR is merged and main CI succeeds. No release has been uploaded to Maven Central.

@IRus IRus changed the title Migrate to Kotlin Toolchain with KMP validation, docs and coverage build!: migrate to Kotlin Toolchain with KMP docs and coverage Oct 13, 2026
@IRus
IRus force-pushed the migrate/kotlin-toolchain branch from 2969005 to 1e7b687 Compare October 13, 2026 16:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant