Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,20 @@
"groupName": "kotlin",
"allowedVersions": "/^\\d+\\.\\d+\\.\\d+$/"
},
{
"description": "Hold the bundled Analysis API at 2.4.10 until 2.5.0: from 2.4.20 kotlin-compiler can no longer host a standalone session (see libs.versions.toml)",
"matchPackageNames": [
"org.jetbrains.kotlin:kotlin-compiler",
"org.jetbrains.kotlin:analysis-api-for-ide",
"org.jetbrains.kotlin:analysis-api-impl-base-for-ide",
"org.jetbrains.kotlin:analysis-api-platform-interface-for-ide",
"org.jetbrains.kotlin:analysis-api-standalone-for-ide",
"org.jetbrains.kotlin:analysis-api-k2-for-ide",
"org.jetbrains.kotlin:low-level-api-fir-for-ide",
"org.jetbrains.kotlin:symbol-light-classes-for-ide"
],
"allowedVersions": "/^(2\\.4\\.10|2\\.([5-9]|[1-9]\\d)\\.\\d+|[3-9]\\.\\d+\\.\\d+)$/"
},
{
"matchPackageNames": [
"org.junit:junit-bom",
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Runs inside the worker's isolated classloader. Bundles the Kotlin Analysis API (

- Korro's own version lives in `gradle.properties` (`version=...`). Both subprojects inherit it via `subprojects { version = rootProject.version }` in the root `build.gradle.kts`. At runtime the plugin reads it from a generated `META-INF/korro-gradle-plugin.properties` resource (`KorroPlugin.readKorroPluginVersion`).
- Every other version lives in `gradle/libs.versions.toml`. The catalog is the single source of truth — do not hard-code versions in subproject scripts; add to the catalog and reference as `libs.*` / `libs.plugins.*`.
- `libs.versions.kotlin` — pinned Kotlin / Analysis API version. `libs.versions.kotlinLanguage` — Kotlin `languageVersion`/`apiVersion` used to compile Korro itself; unrelated to the bundled Analysis API. JVM target is hard-coded to `17` in the root `build.gradle.kts`.
- `libs.versions.kotlin` — Kotlin Gradle plugin and stdlib used to build Korro. `libs.versions.analysisApi` — the bundled Analysis API (`*-for-ide` artifacts) together with the `kotlin-compiler` jar it runs on; they always move as one and may lag `kotlin` (the catalog comment says why). `libs.versions.kotlinLanguage` — Kotlin `languageVersion`/`apiVersion` used to compile Korro itself; unrelated to the bundled Analysis API. JVM target is hard-coded to `17` in the root `build.gradle.kts`.

## Invariants to preserve

Expand Down
21 changes: 12 additions & 9 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
[versions]
kotlin = "2.4.10"
kotlin = "2.4.21"
# Bundled Analysis API + the kotlin-compiler jar it runs on. Held at 2.4.10 until 2.5.0: from 2.4.20 kotlin-compiler lacks
# the decompiler and IntelliJ classes a standalone session needs (NoClassDefFoundError: ClsKotlinBinaryClassCache).
analysisApi = "2.4.10"
kotlinLanguage = "2.1"
shadow = "9.6.1"
pluginPublish = "2.1.1"
Expand All @@ -10,15 +13,15 @@ mavenPublish = "0.37.0"

[libraries]
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
kotlin-compiler = { module = "org.jetbrains.kotlin:kotlin-compiler", version.ref = "kotlin" }
kotlin-compiler = { module = "org.jetbrains.kotlin:kotlin-compiler", version.ref = "analysisApi" }

kotlin-analysisApi = { module = "org.jetbrains.kotlin:analysis-api-for-ide", version.ref = "kotlin" }
kotlin-analysisApi-implBase = { module = "org.jetbrains.kotlin:analysis-api-impl-base-for-ide", version.ref = "kotlin" }
kotlin-analysisApi-platformInterface = { module = "org.jetbrains.kotlin:analysis-api-platform-interface-for-ide", version.ref = "kotlin" }
kotlin-analysisApi-standalone = { module = "org.jetbrains.kotlin:analysis-api-standalone-for-ide", version.ref = "kotlin" }
kotlin-analysisApi-k2 = { module = "org.jetbrains.kotlin:analysis-api-k2-for-ide", version.ref = "kotlin" }
kotlin-lowLevelApiFir = { module = "org.jetbrains.kotlin:low-level-api-fir-for-ide", version.ref = "kotlin" }
kotlin-symbolLightClasses = { module = "org.jetbrains.kotlin:symbol-light-classes-for-ide", version.ref = "kotlin" }
kotlin-analysisApi = { module = "org.jetbrains.kotlin:analysis-api-for-ide", version.ref = "analysisApi" }
kotlin-analysisApi-implBase = { module = "org.jetbrains.kotlin:analysis-api-impl-base-for-ide", version.ref = "analysisApi" }
kotlin-analysisApi-platformInterface = { module = "org.jetbrains.kotlin:analysis-api-platform-interface-for-ide", version.ref = "analysisApi" }
kotlin-analysisApi-standalone = { module = "org.jetbrains.kotlin:analysis-api-standalone-for-ide", version.ref = "analysisApi" }
kotlin-analysisApi-k2 = { module = "org.jetbrains.kotlin:analysis-api-k2-for-ide", version.ref = "analysisApi" }
kotlin-lowLevelApiFir = { module = "org.jetbrains.kotlin:low-level-api-fir-for-ide", version.ref = "analysisApi" }
kotlin-symbolLightClasses = { module = "org.jetbrains.kotlin:symbol-light-classes-for-ide", version.ref = "analysisApi" }

kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinxSerialization" }
caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version.ref = "caffeine" }
Expand Down
Loading