CLOVIS
04/10/2025, 12:12 PM./gradlew -Peap
which runs the build using the latest Kotlin EAP version instead of the stable oneCLOVIS
04/10/2025, 12:14 PMBernd Prünster
04/10/2025, 12:29 PMCLOVIS
04/10/2025, 1:14 PMsettings.gradle.kts
isn't invoked when a downstream project uses them 🤔Bernd Prünster
04/10/2025, 1:31 PMwasyl
04/10/2025, 2:25 PMmy_custom_property_gradle_version
. If it exists — you override the version with its value, if it doesn't, you use the current value. Last I tried, having a true single source of truth for Kotlin version was slightly annoying because of buildscript classpath being different than project ones, and needing to match Kotlin version with other dependencies like KSP or serializationCLOVIS
04/10/2025, 2:25 PMBernd Prünster
04/10/2025, 3:03 PMOleg Yukhnevich
04/10/2025, 3:09 PMkotlin-version-override.settings.gradle.kts
which should be applied in settings.gradle.kts
of every project which uses version catalog
• CI is run like this: https://github.com/whyoleg/cryptography-kotlin/blob/186a42095596d697d1bddc7cc7085464ebe24591/.github/workflows/ci-kotlin-eap.yml#L38
it's possible to run CI on schedule, or directly (as on screenshot) with specific versionmbonnin
04/11/2025, 6:40 AMmbonnin
04/11/2025, 6:43 AMJavier
04/11/2025, 10:49 AMJavier
04/11/2025, 10:50 AMbuildscript {
dependencies {
val kotlinVersion: String =
file("$rootDir/gradle/libs.versions.toml")
.readLines()
.first { it.contains("jetbrains-kotlin") }
.split("\"")[1]
val kotlinModule =
file("$rootDir/gradle/libs.versions.toml")
.readLines()
.first { it.contains("jetbrains-kotlin-gradle-plugin") }
.split("\"")[1]
val kotlinDependency = "$kotlinModule:$kotlinVersion"
classpath(kotlinDependency)
}
}
Javier
04/11/2025, 10:50 AMhubdleSettings {
catalog { //
version(hubdleCatalogVersion)
replaceVersion(
"javiersc-kotlin-compiler-extensions" to kotlinCompilerExtensionsVersion,
"jetbrains-kotlin" to kotlinVersion,
)
}
}
Javier
04/11/2025, 10:50 AM