From 2ee577edd4ec6330e02a03c8b5deaffab0c0a307 Mon Sep 17 00:00:00 2001 From: Ivan “CLOVIS” Canet Date: Wed, 12 Aug 2026 07:40:33 +0000 Subject: [PATCH] merge: Dependency upgrades See merge request opensavvy/automation/kotlin-vite!185 --- settings.gradle.kts | 2 +- gradle/common.versions.toml | 17 +++++++++-------- vite-base/build.gradle.kts | 3 --- vite-kotlin/build.gradle.kts | 3 --- examples/multi-project/build.gradle.kts | 2 +- examples/simple/build.gradle.kts | 2 +- gradle/conventions/settings.gradle.kts | 2 +- vite-base/src/main/kotlin/BaseVitePlugin.kt | 3 +-- vite-kotlin/src/main/kotlin/KotlinVitePlugin.kt | 3 +-- vite-kotlin/src/main/kotlin/tasks/Copy.kt | 8 ++++---- vite-kotlin/src/main/kotlin/tasks/Filtering.kt | 5 ++--- vite-kotlin/src/main/kotlin/tasks/ViteExecTask.kt | 65 +++++++++++++++++++++++++++++------------------------------------ 12 file(s) changed, 50 insertion(s)(+), 65 deletion(s)(-) diff --git a/settings.gradle.kts b/settings.gradle.kts --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -55,7 +55,7 @@ } plugins { - id("dev.opensavvy.conventions.settings") version "2.3.6" + id("dev.opensavvy.conventions.settings") version "2.4.0" } include( diff --git a/gradle/common.versions.toml b/gradle/common.versions.toml --- a/gradle/common.versions.toml +++ b/gradle/common.versions.toml @@ -5,31 +5,31 @@ [versions] # https://kotlinlang.org/docs/releases.html#release-details -kotlin = "2.3.10" +kotlin = "2.4.10" # https://github.com/google/ksp/releases -ksp = "2.3.6" +ksp = "2.3.10" # https://github.com/JetBrains/compose-multiplatform/releases -compose = "1.10.2" +compose = "1.11.1" # https://github.com/kotest/kotest/releases -kotest = "6.1.7" +kotest = "6.1.11" # https://github.com/infix-de/testBalloon/releases -testBalloon = "0.8.4-K2.3.0" +testBalloon = "1.0.1-K2.4.0" # https://gitlab.com/opensavvy/groundwork/pedestal/-/releases pedestal = "3.2.1" # https://prepared.opensavvy.dev/news -prepared = "2.5.1" +prepared = "2.5.3" # https://spine.opensavvy.dev/news -spine = "0.10.1" +spine = "0.12.0" # https://ktmongo.opensavvy.dev/news -ktmongo = "0.29.1" +ktmongo = "0.31.0" # https://gitlab.com/opensavvy/telegram-bot/-/releases telegram-bot = "0.3.1" @@ -107,6 +107,7 @@ opensavvy-ktmongo-driver-sync-java = { module = "dev.opensavvy.ktmongo:driver-sync", version.ref = "ktmongo" } opensavvy-ktmongo-driver-coroutines = { module = "dev.opensavvy.ktmongo:driver-coroutines", version.ref = "ktmongo" } opensavvy-ktmongo-driver-coroutines-kmongo = { module = "dev.opensavvy.ktmongo:driver-coroutines-kmongo", version.ref = "ktmongo" } +opensavvy-ktmongo-driver-multiplatform = { module = "dev.opensavvy.ktmongo:driver-multiplatform", version.ref = "ktmongo" } opensavvy-telegramBot = { module = "dev.opensavvy.telegram:sdk", version.ref = "telegram-bot" } opensavvy-telegramBot-entities = { module = "dev.opensavvy.telegram:entities", version.ref = "telegram-bot" } diff --git a/vite-base/build.gradle.kts b/vite-base/build.gradle.kts --- a/vite-base/build.gradle.kts +++ b/vite-base/build.gradle.kts @@ -2,9 +2,6 @@ alias(opensavvyConventions.plugins.base) alias(opensavvyConventions.plugins.plugin) alias(opensavvyConventions.plugins.kotlin.abstractLibrary) - - `kotlin-dsl` - `java-gradle-plugin` } repositories { diff --git a/vite-kotlin/build.gradle.kts b/vite-kotlin/build.gradle.kts --- a/vite-kotlin/build.gradle.kts +++ b/vite-kotlin/build.gradle.kts @@ -6,9 +6,6 @@ alias(opensavvyConventions.plugins.kotlin.abstractLibrary) alias(libsCommon.plugins.testBalloon) id("org.jetbrains.kotlin.plugin.power-assert") - - `kotlin-dsl` - `java-gradle-plugin` } repositories { diff --git a/examples/multi-project/build.gradle.kts b/examples/multi-project/build.gradle.kts --- a/examples/multi-project/build.gradle.kts +++ b/examples/multi-project/build.gradle.kts @@ -1,6 +1,6 @@ plugins { base - kotlin("multiplatform") version "2.1.20" apply false + kotlin("multiplatform") version "2.4.10" apply false } repositories { diff --git a/examples/simple/build.gradle.kts b/examples/simple/build.gradle.kts --- a/examples/simple/build.gradle.kts +++ b/examples/simple/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - kotlin("multiplatform") version "2.1.20" + kotlin("multiplatform") version "2.4.10" // List of releases: https://gitlab.com/opensavvy/kotlin-vite/-/releases id("dev.opensavvy.vite.kotlin") // version "REPLACE THIS" diff --git a/gradle/conventions/settings.gradle.kts b/gradle/conventions/settings.gradle.kts --- a/gradle/conventions/settings.gradle.kts +++ b/gradle/conventions/settings.gradle.kts @@ -48,7 +48,7 @@ } plugins { - id("dev.opensavvy.conventions.settings") version "2.3.6" + id("dev.opensavvy.conventions.settings") version "2.4.0" } enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") diff --git a/vite-base/src/main/kotlin/BaseVitePlugin.kt b/vite-base/src/main/kotlin/BaseVitePlugin.kt --- a/vite-base/src/main/kotlin/BaseVitePlugin.kt +++ b/vite-base/src/main/kotlin/BaseVitePlugin.kt @@ -3,7 +3,6 @@ import opensavvy.gradle.vite.base.config.ViteConfig import org.gradle.api.Plugin import org.gradle.api.Project -import org.gradle.kotlin.dsl.getByType class BaseVitePlugin : Plugin { @@ -16,4 +15,4 @@ * Accesses the project's [ViteConfig] extension. */ val Project.viteConfig: ViteConfig - get() = extensions.getByType() + get() = extensions.getByType(ViteConfig::class.java) diff --git a/vite-kotlin/src/main/kotlin/KotlinVitePlugin.kt b/vite-kotlin/src/main/kotlin/KotlinVitePlugin.kt --- a/vite-kotlin/src/main/kotlin/KotlinVitePlugin.kt +++ b/vite-kotlin/src/main/kotlin/KotlinVitePlugin.kt @@ -8,7 +8,6 @@ import org.gradle.api.file.Directory import org.gradle.api.provider.Provider import org.gradle.internal.extensions.stdlib.capitalized -import org.gradle.kotlin.dsl.getByType import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl @@ -83,4 +82,4 @@ * Accesses the project's [KotlinViteConfig] extension. */ val Project.kotlinViteConfig: KotlinViteConfig - get() = extensions.getByType() + get() = extensions.getByType(KotlinViteConfig::class.java) diff --git a/vite-kotlin/src/main/kotlin/tasks/Copy.kt b/vite-kotlin/src/main/kotlin/tasks/Copy.kt --- a/vite-kotlin/src/main/kotlin/tasks/Copy.kt +++ b/vite-kotlin/src/main/kotlin/tasks/Copy.kt @@ -7,8 +7,8 @@ import org.gradle.api.provider.Provider import org.gradle.internal.extensions.stdlib.capitalized import org.jetbrains.kotlin.gradle.plugin.KotlinTarget -import org.jetbrains.kotlin.gradle.targets.js.ir.DefaultIncrementalSyncTask import java.nio.file.Files +import java.nio.file.LinkOption import java.nio.file.Path import kotlin.io.path.deleteExisting import kotlin.io.path.exists @@ -37,12 +37,12 @@ val nodeModules = Path.of(destination.get().asFile.absolutePath, "node_modules") val realNodeModules = Path.of(rootBuildDir.dir("${targetType}/node_modules").get().asFile.absolutePath) - if (nodeModules.exists() && nodeModules.isSymbolicLink() && nodeModules.readSymbolicLink() != realNodeModules) { - // it exists, but doesn't point to the correct place + if (nodeModules.isSymbolicLink() && nodeModules.readSymbolicLink() != realNodeModules) { + // it exists (possibly dangling, if the project was moved), but doesn't point to the correct place nodeModules.deleteExisting() } - if (!nodeModules.exists()) { + if (!nodeModules.exists(LinkOption.NOFOLLOW_LINKS)) { Files.createSymbolicLink( nodeModules, realNodeModules, diff --git a/vite-kotlin/src/main/kotlin/tasks/Filtering.kt b/vite-kotlin/src/main/kotlin/tasks/Filtering.kt --- a/vite-kotlin/src/main/kotlin/tasks/Filtering.kt +++ b/vite-kotlin/src/main/kotlin/tasks/Filtering.kt @@ -2,7 +2,6 @@ import opensavvy.gradle.vite.base.config.ViteConfig import org.gradle.api.Project -import org.gradle.kotlin.dsl.getByName import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.plugin.KotlinTarget @@ -19,7 +18,7 @@ else kotlin.js().outputModuleName.get() val jsFileExtension = (target.compilations.getByName("main") as KotlinJsCompilation).fileExtension.get() val jsFileName = "$moduleName.$jsFileExtension" - project.tasks.getByName("${vitePrefix}CompileKotlinDev", CustomIncrementalSyncTask::class) { + project.tasks.named("${vitePrefix}CompileKotlinDev", CustomIncrementalSyncTask::class.java) { addFilter { if (name == "index.html") { filter { s -> @@ -29,7 +28,7 @@ } } } - project.tasks.getByName("${vitePrefix}CompileKotlinProd", CustomIncrementalSyncTask::class) { + project.tasks.named("${vitePrefix}CompileKotlinProd", CustomIncrementalSyncTask::class.java) { addFilter { if (name == "index.html") { filter { s -> diff --git a/vite-kotlin/src/main/kotlin/tasks/ViteExecTask.kt b/vite-kotlin/src/main/kotlin/tasks/ViteExecTask.kt --- a/vite-kotlin/src/main/kotlin/tasks/ViteExecTask.kt +++ b/vite-kotlin/src/main/kotlin/tasks/ViteExecTask.kt @@ -9,9 +9,8 @@ import org.gradle.api.Project import org.gradle.api.tasks.CacheableTask import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.TaskProvider import org.gradle.internal.extensions.stdlib.capitalized -import org.gradle.kotlin.dsl.getByType -import org.gradle.kotlin.dsl.getValue import org.gradle.process.ExecOperations import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension @@ -38,7 +37,7 @@ @get:Internal override val compilation: KotlinJsIrCompilation get() { - val extension = project.extensions.getByType() + val extension = project.extensions.getByType(KotlinMultiplatformExtension::class.java) val targetDsl = if (targetType == "js") extension.js() else extension.wasmJs() return targetDsl.compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME) } @@ -71,55 +70,49 @@ } internal fun createExecTasks(project: Project, vitePrefix: String, target: KotlinTarget) { - val configureDev: WriteConfig by project.tasks.named("${vitePrefix}ConfigureDev") - val configureProd: WriteConfig by project.tasks.named("${vitePrefix}ConfigureProd") + val configureDev: TaskProvider = project.tasks.named("${vitePrefix}ConfigureDev", WriteConfig::class.java) + val configureProd: TaskProvider = project.tasks.named("${vitePrefix}ConfigureProd", WriteConfig::class.java) val targetName = target.name val targetType = if (target.targetName == "wasmJs") "wasm" else "js" - project.tasks.register("${vitePrefix}Build", KotlinViteExec::class.java, targetName, targetType).apply { - configure { - description = "Builds the production variant of the project" - dependsOn(configureProd, "${vitePrefix}CompileProd") + project.tasks.register("${vitePrefix}Build", KotlinViteExec::class.java, targetName, targetType).configure { + description = "Builds the production variant of the project" + dependsOn(configureProd, "${vitePrefix}CompileProd") - command.set("build") + command.set("build") - config.setDefaultsFrom(configureProd.config) + config.setDefaultsFrom(configureProd.get().config) - config.root.set(project.viteBuildProdDir(targetName).map { it.dir("kotlin") }) - configurationFile.set(configureProd.configurationFile) - outputs.dir(project.viteBuildDistDir(targetName)) - } + config.root.set(project.viteBuildProdDir(targetName).map { it.dir("kotlin") }) + configurationFile.set(configureProd.get().configurationFile) + outputs.dir(project.viteBuildDistDir(targetName)) } - project.tasks.register("${vitePrefix}Preview", KotlinViteExec::class.java, targetName, targetType).apply { - configure { - description = "Previews the production variant of the project" - dependsOn("${vitePrefix}Build") + project.tasks.register("${vitePrefix}Preview", KotlinViteExec::class.java, targetName, targetType).configure { + description = "Previews the production variant of the project" + dependsOn("${vitePrefix}Build") - command.set("preview") + command.set("preview") - config.setDefaultsFrom(configureProd.config) + config.setDefaultsFrom(configureProd.get().config) - config.root.set(project.viteBuildProdDir(targetName).map { it.dir("kotlin") }) - configurationFile.set(configureProd.configurationFile) - outputs.dir(project.viteBuildDistDir(targetName)) - } + config.root.set(project.viteBuildProdDir(targetName).map { it.dir("kotlin") }) + configurationFile.set(configureProd.get().configurationFile) + outputs.dir(project.viteBuildDistDir(targetName)) } - project.tasks.register("${vitePrefix}Run", KotlinViteExec::class.java, targetName, targetType).apply { - configure { - description = "Hosts the development variant of the project" - dependsOn(configureDev, "${vitePrefix}CompileDev") + project.tasks.register("${vitePrefix}Run", KotlinViteExec::class.java, targetName, targetType).configure { + description = "Hosts the development variant of the project" + dependsOn(configureDev, "${vitePrefix}CompileDev") - config.setDefaultsFrom(configureDev.config) + config.setDefaultsFrom(configureDev.get().config) - config.root.set(project.viteBuildDevDir(targetName).map { it.dir("kotlin") }) - configurationFile.set(configureDev.configurationFile) + config.root.set(project.viteBuildDevDir(targetName).map { it.dir("kotlin") }) + configurationFile.set(configureDev.get().configurationFile) - inputs.property("server.host", config.server.host) - inputs.property("server.port", config.server.port) - inputs.property("server.strictPort", config.server.strictPort) - } + inputs.property("server.host", config.server.host) + inputs.property("server.port", config.server.port) + inputs.property("server.strictPort", config.server.strictPort) } project.tasks.named("assemble") { -- tangled.sh