diff --git a/.github/workflows/build-on-ubuntu.yml b/.github/workflows/build-on-ubuntu.yml
index 028e583..f8c2493 100644
--- a/.github/workflows/build-on-ubuntu.yml
+++ b/.github/workflows/build-on-ubuntu.yml
@@ -14,7 +14,7 @@ jobs:
- uses: actions/setup-java@v4
with:
- java-version: 11
+ java-version: 17
distribution: zulu
cache: gradle
diff --git a/.github/workflows/build-on-windows.yml b/.github/workflows/build-on-windows.yml
index 3627bbf..4e6b57f 100644
--- a/.github/workflows/build-on-windows.yml
+++ b/.github/workflows/build-on-windows.yml
@@ -14,7 +14,7 @@ jobs:
- uses: actions/setup-java@v4
with:
- java-version: 11
+ java-version: 17
distribution: zulu
cache: gradle
diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml
index b2955de..858cebb 100644
--- a/.github/workflows/gradle-wrapper-validation.yml
+++ b/.github/workflows/gradle-wrapper-validation.yml
@@ -9,7 +9,7 @@ on:
jobs:
validation:
- name: Validation
+ name: Gradle Wrapper Validation
runs-on: ubuntu-latest
steps:
- name: Checkout latest code
diff --git a/.github/workflows/increment-guard.yml b/.github/workflows/increment-guard.yml
index a1c90c3..1993841 100644
--- a/.github/workflows/increment-guard.yml
+++ b/.github/workflows/increment-guard.yml
@@ -20,7 +20,7 @@ jobs:
- uses: actions/setup-java@v4
with:
- java-version: 11
+ java-version: 17
distribution: zulu
cache: gradle
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 73a0a69..8b5b4d5 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -14,7 +14,7 @@ jobs:
- uses: actions/setup-java@v4
with:
- java-version: 11
+ java-version: 17
distribution: zulu
cache: gradle
diff --git a/.gitignore b/.gitignore
index 56187d6..e4e87f0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,6 +31,14 @@
#
# Therefore, instructions below are superset of instructions required for all the projects.
+.DS_Store
+
+# `jenv` file with the local version of Java.
+.java-version
+
+# Kotlin temp directories.
+**/.kotlin/**
+
# IntelliJ IDEA modules and interim config files.
*.iml
.idea/*.xml
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index b091734..229f1d3 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -255,6 +255,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index a3bc764..68f3a99 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -40,5 +40,5 @@
-
-
+
+
\ No newline at end of file
diff --git a/.lift.toml b/.lift.toml
deleted file mode 100644
index 178be58..0000000
--- a/.lift.toml
+++ /dev/null
@@ -1 +0,0 @@
-ignoreRules=["SpreadOperator"]
diff --git a/build.gradle.kts b/build.gradle.kts
index b472af2..e78b468 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -26,9 +26,9 @@
import io.spine.dependency.build.CheckerFramework
import io.spine.dependency.build.ErrorProne
+import io.spine.dependency.lib.Coroutines
import io.spine.dependency.lib.Guava
import io.spine.dependency.lib.JavaX
-import io.spine.dependency.lib.KotlinX
import io.spine.dependency.local.Logging
import io.spine.dependency.test.JUnit
import io.spine.dependency.test.Kotest
@@ -46,7 +46,7 @@ import io.spine.gradle.report.pom.PomGenerator
import io.spine.gradle.standardToSpineSdk
import io.spine.gradle.testing.configureLogging
import io.spine.gradle.testing.registerTestTasks
-import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
`java-library`
@@ -94,18 +94,15 @@ subprojects {
CheckStyleConfig.applyTo(project)
LicenseReporter.generateReportIn(project)
- val javaVersion = JavaVersion.VERSION_11.toString()
-
kotlin {
- applyJvmToolchain(javaVersion)
+ compilerOptions {
+ jvmTarget.set(BuildSettings.jvmTarget)
+ setFreeCompilerArgs()
+ }
+ applyJvmToolchain(BuildSettings.javaVersion.asInt())
explicitApi()
}
- tasks.withType().configureEach {
- kotlinOptions.jvmTarget = javaVersion
- setFreeCompilerArgs()
- }
-
tasks.withType {
configureJavac()
configureErrorProne()
@@ -131,8 +128,8 @@ subprojects {
resolutionStrategy {
force(
Logging.lib,
- KotlinX.Coroutines.core,
- KotlinX.Coroutines.jdk8,
+ Coroutines.core,
+ Coroutines.jdk8,
)
}
}
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index 11c767c..7ab9928 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -24,6 +24,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+import org.jetbrains.kotlin.gradle.dsl.JvmTarget
+
/**
* This script uses two declarations of the constant [licenseReportVersion] because
* currently there is no way to define a constant _before_ a build script of `buildSrc`.
@@ -37,9 +39,6 @@ plugins {
// https://github.com/jk1/Gradle-License-Report/releases
id("com.github.jk1.dependency-license-report").version("2.7")
-
- // https://github.com/johnrengelman/shadow/releases
- id("com.github.johnrengelman.shadow").version("7.1.2")
}
repositories {
@@ -71,12 +70,12 @@ val licenseReportVersion = "2.7"
val grGitVersion = "4.1.1"
/**
- * The version of the Kotlin Gradle plugin and Kotlin binaries used by the build process.
+ * The version of the Kotlin Gradle plugin used by the build process.
*
* This version may change from the [version of Kotlin][io.spine.dependency.lib.Kotlin.version]
* used by the project.
*/
-val kotlinVersion = "1.8.22"
+val kotlinVersion = "2.1.20"
/**
* The version of Guava used in `buildSrc`.
@@ -94,7 +93,7 @@ val guavaVersion = "32.1.3-jre"
* @see
* Error Prone Gradle Plugin Releases
*/
-val errorPronePluginVersion = "3.1.0"
+val errorPronePluginVersion = "4.1.0"
/**
* The version of Protobuf Gradle Plugin.
@@ -114,14 +113,14 @@ val protobufPluginVersion = "0.9.4"
* @see
* Dokka Releases
*/
-val dokkaVersion = "1.9.20"
+val dokkaVersion = "2.0.0"
/**
* The version of Detekt Gradle Plugin.
*
* @see Detekt Releases
*/
-val detektVersion = "1.23.0"
+val detektVersion = "1.23.8"
/**
* @see [io.spine.dependency.test.Kotest]
@@ -156,15 +155,13 @@ configurations.all {
}
}
-val jvmVersion = JavaLanguageVersion.of(11)
-
java {
- toolchain.languageVersion.set(jvmVersion)
+ toolchain.languageVersion.set(JavaLanguageVersion.of(17))
}
-tasks.withType {
- kotlinOptions {
- jvmTarget = jvmVersion.toString()
+kotlin {
+ compilerOptions {
+ jvmTarget.set(JvmTarget.JVM_17)
}
}
diff --git a/buildSrc/src/main/kotlin/BuildExtensions.kt b/buildSrc/src/main/kotlin/BuildExtensions.kt
index 0cdfc4e..e5b4650 100644
--- a/buildSrc/src/main/kotlin/BuildExtensions.kt
+++ b/buildSrc/src/main/kotlin/BuildExtensions.kt
@@ -99,7 +99,7 @@ val ScriptHandlerScope.protoData: ProtoData
* This plugin is published at Gradle Plugin Portal.
* But when used in a pair with [mcJava], it cannot be applied directly to a project.
* It is so, because [mcJava] uses [protoData] as its dependency.
- * And buildscript's classpath ends up with both of them.
+ * And the buildscript's classpath ends up with both of them.
*/
val PluginDependenciesSpec.protoData: ProtoData
get() = ProtoData
@@ -111,8 +111,8 @@ val PluginDependenciesSpec.protoData: ProtoData
* declared in auto-generated `org.gradle.kotlin.dsl.PluginAccessors.kt` file.
* It conflicts with our own declarations.
*
- * Declaring of top-level shortcuts eliminates the need in applying plugins
- * using fully qualified name of dependency objects.
+ * Declaring of top-level shortcuts eliminates the need to apply plugins
+ * using a fully qualified name of dependency objects.
*
* It is still possible to apply a plugin with a custom version, if needed.
* Just declare a version again on the returned [PluginDependencySpec].
@@ -184,18 +184,39 @@ fun Project.configureTaskDependencies() {
val launchTestProtoData = "launchTestProtoData"
val generateProto = "generateProto"
val createVersionFile = "createVersionFile"
- "compileKotlin".dependOn(launchProtoData)
- "compileTestKotlin".dependOn(launchTestProtoData)
+ val compileKotlin = "compileKotlin"
+ compileKotlin.run {
+ dependOn(generateProto)
+ dependOn(launchProtoData)
+ }
+ val compileTestKotlin = "compileTestKotlin"
+ compileTestKotlin.dependOn(launchTestProtoData)
val sourcesJar = "sourcesJar"
- sourcesJar.dependOn(generateProto)
- sourcesJar.dependOn(launchProtoData)
- sourcesJar.dependOn(createVersionFile)
- sourcesJar.dependOn("prepareProtocConfigVersions")
+ val kspKotlin = "kspKotlin"
+ sourcesJar.run {
+ dependOn(generateProto)
+ dependOn(launchProtoData)
+ dependOn(kspKotlin)
+ dependOn(createVersionFile)
+ dependOn("prepareProtocConfigVersions")
+ }
val dokkaHtml = "dokkaHtml"
- dokkaHtml.dependOn(generateProto)
- dokkaHtml.dependOn(launchProtoData)
- "dokkaJavadoc".dependOn(launchProtoData)
+ dokkaHtml.run {
+ dependOn(generateProto)
+ dependOn(launchProtoData)
+ dependOn(kspKotlin)
+ }
+ val dokkaJavadoc = "dokkaJavadoc"
+ dokkaJavadoc.run {
+ dependOn(launchProtoData)
+ dependOn(kspKotlin)
+ }
"publishPluginJar".dependOn(createVersionFile)
+ compileKotlin.dependOn(kspKotlin)
+ compileTestKotlin.dependOn("kspTestKotlin")
+ "compileTestFixturesKotlin".dependOn("kspTestFixturesKotlin")
+ "javadocJar".dependOn(dokkaHtml)
+ "dokkaKotlinJar".dependOn(dokkaJavadoc)
}
}
@@ -207,15 +228,14 @@ fun Project.configureTaskDependencies() {
val Project.productionModules: Iterable
get() = rootProject.subprojects.filter { !it.name.contains("-tests") }
-
/**
- * Sets the remote debug option for this task.
+ * Sets the remote debug option for this [JavaExec] task.
*
* The port number is [5566][BuildSettings.REMOTE_DEBUG_PORT].
*
* @param enabled If `true` the task will be suspended.
*/
-fun Task.remoteDebug(enabled: Boolean = true) { this as JavaExec
+fun JavaExec.remoteDebug(enabled: Boolean = true) {
debugOptions {
this@debugOptions.enabled.set(enabled)
port.set(BuildSettings.REMOTE_DEBUG_PORT)
@@ -224,6 +244,26 @@ fun Task.remoteDebug(enabled: Boolean = true) { this as JavaExec
}
}
+/**
+ * Sets the remote debug option for the task of [JavaExec] type with the given name.
+ *
+ * The port number is [5566][BuildSettings.REMOTE_DEBUG_PORT].
+ *
+ * @param enabled If `true` the task will be suspended.
+ * @throws IllegalStateException if the task with the given name is not found, or,
+ * if the taks is not of [JavaExec] type.
+ */
+fun Project.setRemoteDebug(taskName: String, enabled: Boolean = true) {
+ val task = tasks.findByName(taskName)
+ check(task != null) {
+ "Could not find a task named `$taskName` in the project `$name`."
+ }
+ check(task is JavaExec) {
+ "The task `$taskName` is not of type `JavaExec`."
+ }
+ task.remoteDebug(enabled)
+}
+
/**
* Sets remote debug options for the `launchProtoData` task.
*
@@ -231,9 +271,8 @@ fun Task.remoteDebug(enabled: Boolean = true) { this as JavaExec
*
* @see remoteDebug
*/
-fun Project.protoDataRemoteDebug(enabled: Boolean = true) {
- tasks.findByName("launchProtoData")?.remoteDebug(enabled)
-}
+fun Project.protoDataRemoteDebug(enabled: Boolean = true) =
+ setRemoteDebug("launchProtoData", enabled)
/**
* Sets remote debug options for the `launchTestProtoData` task.
@@ -242,6 +281,15 @@ fun Project.protoDataRemoteDebug(enabled: Boolean = true) {
*
* @see remoteDebug
*/
-fun Project.testProtoDataRemoteDebug(enabled: Boolean = true) {
- tasks.findByName("launchTestProtoData")?.remoteDebug(enabled)
-}
+fun Project.testProtoDataRemoteDebug(enabled: Boolean = true) =
+ setRemoteDebug("launchTestProtoData", enabled)
+
+/**
+ * Sets remote debug options for the `launchTestFixturesProtoData` task.
+ *
+ * @param enabled if `true` the task will be suspended.
+ *
+ * @see remoteDebug
+ */
+fun Project.testFixturesProtoDataRemoteDebug(enabled: Boolean = true) =
+ setRemoteDebug("launchTestFixturesProtoData", enabled)
diff --git a/buildSrc/src/main/kotlin/BuildSettings.kt b/buildSrc/src/main/kotlin/BuildSettings.kt
index c110090..6617b9d 100644
--- a/buildSrc/src/main/kotlin/BuildSettings.kt
+++ b/buildSrc/src/main/kotlin/BuildSettings.kt
@@ -24,14 +24,19 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+import org.gradle.api.JavaVersion
import org.gradle.jvm.toolchain.JavaLanguageVersion
+import org.jetbrains.kotlin.gradle.dsl.JvmTarget
/**
* This object provides high-level constants, like the version of JVM, to be used
* throughout the project.
*/
+@Suppress("unused")
object BuildSettings {
- private const val JVM_VERSION = 11
+ private const val JVM_VERSION = 17
val javaVersion: JavaLanguageVersion = JavaLanguageVersion.of(JVM_VERSION)
+ val javaVersionCompat: JavaVersion = JavaVersion.toVersion(JVM_VERSION)
+ val jvmTarget = JvmTarget.JVM_17
const val REMOTE_DEBUG_PORT = 5566
}
diff --git a/buildSrc/src/main/kotlin/DependencyResolution.kt b/buildSrc/src/main/kotlin/DependencyResolution.kt
index fb1073e..adf5eae 100644
--- a/buildSrc/src/main/kotlin/DependencyResolution.kt
+++ b/buildSrc/src/main/kotlin/DependencyResolution.kt
@@ -199,7 +199,7 @@ fun Project.forceSpineBase() {
@Suppress("unused")
fun Project.forceBaseInProtoTasks() {
configurations.configureEach {
- if (name.lowercased().contains("proto")) {
+ if (name.lowercase().contains("proto")) {
resolutionStrategy {
force(Base.libForBuildScript)
}
diff --git a/buildSrc/src/main/kotlin/DokkaExts.kt b/buildSrc/src/main/kotlin/DokkaExts.kt
index 7b0cc49..ff5de3f 100644
--- a/buildSrc/src/main/kotlin/DokkaExts.kt
+++ b/buildSrc/src/main/kotlin/DokkaExts.kt
@@ -186,9 +186,7 @@ fun Project.dokkaKotlinJar(): TaskProvider = tasks.getOrCreate("dokkaKotlin
*/
fun AbstractDokkaTask.isInPublishingGraph(): Boolean =
project.gradle.taskGraph.allTasks.any {
- with(it.name) {
- startsWith("publish") && !startsWith("publishToMavenLocal")
- }
+ it.name == "publish"
}
/**
@@ -217,7 +215,7 @@ fun Project.dokkaJavaJar(): TaskProvider = tasks.getOrCreate("dokkaJavaJar"
fun Project.disableDocumentationTasks() {
gradle.taskGraph.whenReady {
tasks.forEach { task ->
- val lowercaseName = task.name.lowercased()
+ val lowercaseName = task.name.lowercase()
if (lowercaseName.contains("dokka") || lowercaseName.contains("javadoc")) {
task.enabled = false
}
diff --git a/buildSrc/src/main/kotlin/Strings.kt b/buildSrc/src/main/kotlin/Strings.kt
index 2e96bc6..19e0c21 100644
--- a/buildSrc/src/main/kotlin/Strings.kt
+++ b/buildSrc/src/main/kotlin/Strings.kt
@@ -24,8 +24,6 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import org.gradle.configurationcache.extensions.capitalized
-
/**
* This file provides extensions to `String` and `CharSequence` that wrap
* analogues from standard Kotlin runtime.
@@ -43,19 +41,10 @@ private const val ABOUT = ""
/**
* Makes the first character come in the title case.
*/
-fun String.titleCaseFirstChar(): String {
- // return replaceFirstChar { it.titlecase() }
- // OR for earlier Kotlin versions:
- // 1. add import of `org.gradle.configurationcache.extensions.capitalized`
- // 2. call `capitalized()` instead of `replaceFirstChar` above.
- return capitalized()
-}
+fun String.titleCaseFirstChar(): String = replaceFirstChar { it.titlecase() }
/**
* Converts this string to lowercase.
*/
-fun String.lowercased(): String {
- // return lowercase()
- // OR for earlier Kotlin versions call:
- return toLowerCase()
-}
+@Deprecated(message = "Please use `lowercase()` instead.", replaceWith = ReplaceWith("lowercase"))
+fun String.lowercased(): String = lowercase()
diff --git a/buildSrc/src/main/kotlin/compile-protobuf.gradle.kts b/buildSrc/src/main/kotlin/compile-protobuf.gradle.kts
index 57a6b96..4acbb86 100644
--- a/buildSrc/src/main/kotlin/compile-protobuf.gradle.kts
+++ b/buildSrc/src/main/kotlin/compile-protobuf.gradle.kts
@@ -32,13 +32,21 @@ plugins {
id("com.google.protobuf")
}
-
// For generating test fixtures. See `src/test/proto`.
protobuf {
configurations.excludeProtobufLite()
protoc {
artifact = Protobuf.compiler
}
+
+ afterEvaluate {
+ // Walk the collection of tasks to force the execution
+ // of the `configureEach` operations earlier.
+ // This hack allows to avoid `ConcurrentModificationException` on
+ // creating `kspKotlin` task.
+ generateProtoTasks.all().size
+ }
+
generateProtoTasks.all().configureEach {
setup()
}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/build/Dokka.kt b/buildSrc/src/main/kotlin/io/spine/dependency/build/Dokka.kt
index b56dad1..dc8e895 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/build/Dokka.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/build/Dokka.kt
@@ -35,7 +35,7 @@ object Dokka {
* When changing the version, also change the version used in the
* `buildSrc/build.gradle.kts`.
*/
- const val version = "1.9.20"
+ const val version = "2.0.0"
object GradlePlugin {
const val id = "org.jetbrains.dokka"
@@ -78,7 +78,7 @@ object Dokka {
object SpineExtensions {
private const val group = "io.spine.tools"
- const val version = "2.0.0-SNAPSHOT.4"
+ const val version = "2.0.0-SNAPSHOT.6"
const val lib = "$group:spine-dokka-extensions:$version"
}
}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/build/ErrorProne.kt b/buildSrc/src/main/kotlin/io/spine/dependency/build/ErrorProne.kt
index 6aba7b4..5b47c1b 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/build/ErrorProne.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/build/ErrorProne.kt
@@ -30,7 +30,7 @@ package io.spine.dependency.build
@Suppress("unused", "ConstPropertyName")
object ErrorProne {
// https://github.com/google/error-prone
- private const val version = "2.23.0"
+ private const val version = "2.36.0"
const val group = "com.google.errorprone"
@@ -56,7 +56,7 @@ object ErrorProne {
* When the plugin is used as a library (e.g., in tools), its version and the library
* artifacts are of importance.
*/
- const val version = "3.1.0"
+ const val version = "4.1.0"
const val lib = "net.ltgt.gradle:gradle-errorprone-plugin:$version"
}
}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/build/Ksp.kt b/buildSrc/src/main/kotlin/io/spine/dependency/build/Ksp.kt
index bd886a2..991c6c3 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/build/Ksp.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/build/Ksp.kt
@@ -31,10 +31,14 @@ package io.spine.dependency.build
*
* @see KSP GitHub repository
*/
+@Suppress("ConstPropertyName", "unused")
object Ksp {
- /**
- * The latest version compatible with Kotlin v1.8.22, which is bundled with Gradle 7.6.4.
- */
- const val version = "1.8.22-1.0.11"
+ const val version = "2.1.20-1.0.31"
const val id = "com.google.devtools.ksp"
+ const val group = "com.google.devtools.ksp"
+ const val symbolProcessingApi = "$group:symbol-processing-api:$version"
+ const val symbolProcessing = "$group:symbol-processing:$version"
+ const val symbolProcessingAaEmb = "$group:symbol-processing-aa-embeddable:$version"
+ const val symbolProcessingCommonDeps = "$group:symbol-processing-common-deps:$version"
+ const val gradlePlugin = "$group:symbol-processing-gradle-plugin:$version"
}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/lib/Auto.kt b/buildSrc/src/main/kotlin/io/spine/dependency/lib/Auto.kt
index b88afb2..6c222b9 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/lib/Auto.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/lib/Auto.kt
@@ -50,11 +50,6 @@ object AutoValue {
// https://github.com/ZacSweers/auto-service-ksp
object AutoServiceKsp {
- /**
- * The latest version compatible with Kotlin 1.8.22.
- *
- * @see io.spine.dependency.build.Ksp.version
- */
- private const val version = "1.1.0"
+ private const val version = "1.2.0"
const val processor = "dev.zacsweers.autoservice:auto-service-ksp:$version"
}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/lib/Coroutines.kt b/buildSrc/src/main/kotlin/io/spine/dependency/lib/Coroutines.kt
index cb3c281..a67223f 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/lib/Coroutines.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/lib/Coroutines.kt
@@ -31,11 +31,15 @@ package io.spine.dependency.lib
*
* @see GitHub projecet
*/
-@Suppress("unused")
+@Suppress("unused", "ConstPropertyName")
object Coroutines {
- const val version = "1.6.4"
- const val jdk8 = "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:$version"
- const val core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version"
- const val bom = "org.jetbrains.kotlinx:kotlinx-coroutines-bom:$version"
- const val coreJvm = "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:$version"
+ const val group = "org.jetbrains.kotlinx"
+ const val version = "1.10.1"
+ const val bom = "$group:kotlinx-coroutines-bom:$version"
+ const val core = "$group:kotlinx-coroutines-core:$version"
+ const val coreJvm = "$group:kotlinx-coroutines-core-jvm:$version"
+ const val jdk8 = "$group:kotlinx-coroutines-jdk8:$version"
+ const val debug = "$group:kotlinx-coroutines-debug:$version"
+ const val test = "$group:kotlinx-coroutines-test:$version"
+ const val testJvm = "$group:kotlinx-coroutines-test-jvm:$version"
}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/lib/Kotlin.kt b/buildSrc/src/main/kotlin/io/spine/dependency/lib/Kotlin.kt
index 55e884a..ba24aaa 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/lib/Kotlin.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/lib/Kotlin.kt
@@ -32,10 +32,17 @@ package io.spine.dependency.lib
object Kotlin {
/**
- * When changing the version, also change the version used in the `buildSrc/build.gradle.kts`.
+ * This is the version of Kotlin we use for writing code which does not
+ * depend on Gradle and the version of embedded Kotlin.
*/
@Suppress("MemberVisibilityCanBePrivate") // used directly from the outside.
- const val version = "1.9.23"
+ const val runtimeVersion = "2.1.20"
+
+ /**
+ * This is the version of
+ * [Kotlin embedded into Gradle](https://docs.gradle.org/current/userguide/compatibility.html#kotlin).
+ */
+ const val embeddedVersion = "2.0.21"
/**
* The version of the JetBrains annotations library, which is a transitive
@@ -43,24 +50,41 @@ object Kotlin {
*
* @see Java Annotations
*/
- private const val annotationsVersion = "24.0.1"
+ private const val annotationsVersion = "26.0.2"
private const val group = "org.jetbrains.kotlin"
- const val stdLib = "$group:kotlin-stdlib:$version"
- const val stdLibCommon = "$group:kotlin-stdlib-common:$version"
+ const val scriptRuntime = "$group:kotlin-script-runtime:$runtimeVersion"
+ const val stdLib = "$group:kotlin-stdlib:$runtimeVersion"
+ const val stdLibCommon = "$group:kotlin-stdlib-common:$runtimeVersion"
+
+ const val toolingCore = "$group:kotlin-tooling-core:$runtimeVersion"
@Deprecated("Please use `stdLib` instead.")
- const val stdLibJdk7 = "$group:kotlin-stdlib-jdk7:$version"
+ const val stdLibJdk7 = "$group:kotlin-stdlib-jdk7:$runtimeVersion"
@Deprecated("Please use `stdLib` instead.")
- const val stdLibJdk8 = "$group:kotlin-stdlib-jdk8:$version"
+ const val stdLibJdk8 = "$group:kotlin-stdlib-jdk8:$runtimeVersion"
- const val reflect = "$group:kotlin-reflect:$version"
- const val testJUnit5 = "$group:kotlin-test-junit5:$version"
+ const val reflect = "$group:kotlin-reflect:$runtimeVersion"
+ const val testJUnit5 = "$group:kotlin-test-junit5:$runtimeVersion"
- const val gradlePluginApi = "$group:kotlin-gradle-plugin-api:$version"
- const val gradlePluginLib = "$group:kotlin-gradle-plugin:$version"
+ @Deprecated(message = "Please use `GradlePlugin.api` instead.", ReplaceWith("GradlePlugin.api"))
+ const val gradlePluginApi = "$group:kotlin-gradle-plugin-api:$runtimeVersion"
+
+ @Deprecated(message = "Please use `GradlePlugin.lib` instead.", ReplaceWith("GradlePlugin.lib"))
+ const val gradlePluginLib = "$group:kotlin-gradle-plugin:$runtimeVersion"
const val jetbrainsAnnotations = "org.jetbrains:annotations:$annotationsVersion"
+
+ object Compiler {
+ const val embeddable = "$group:kotlin-compiler-embeddable:$runtimeVersion"
+ }
+
+ object GradlePlugin {
+ const val version = runtimeVersion
+ const val api = "$group:kotlin-gradle-plugin-api:$version"
+ const val lib = "$group:kotlin-gradle-plugin:$version"
+ const val model = "$group:kotlin-gradle-model:$version"
+ }
}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/lib/KotlinPoet.kt b/buildSrc/src/main/kotlin/io/spine/dependency/lib/KotlinPoet.kt
new file mode 100644
index 0000000..346c5d8
--- /dev/null
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/lib/KotlinPoet.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2025, TeamDev. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Redistribution and use in source and/or binary forms, with or without
+ * modification, must retain the above copyright notice and the following
+ * disclaimer.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package io.spine.dependency.lib
+
+// https://github.com/square/kotlinpoet
+@Suppress("unused", "ConstPropertyName")
+object KotlinPoet {
+ private const val version = "2.0.0"
+ const val lib = "com.squareup:kotlinpoet:$version"
+ const val ksp = "com.squareup:kotlinpoet-ksp:$version"
+}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/lib/KotlinX.kt b/buildSrc/src/main/kotlin/io/spine/dependency/lib/KotlinX.kt
index 9c1ec02..d4b45a2 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/lib/KotlinX.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/lib/KotlinX.kt
@@ -31,12 +31,20 @@ object KotlinX {
const val group = "org.jetbrains.kotlinx"
+ @Deprecated(
+ message = "Pleaser use top level object `Coroutines` instead.",
+ ReplaceWith("Coroutines")
+ )
object Coroutines {
// https://github.com/Kotlin/kotlinx.coroutines
- const val version = "1.9.0"
+ const val version = io.spine.dependency.lib.Coroutines.version
+ const val bom = "$group:kotlinx-coroutines-bom:$version"
const val core = "$group:kotlinx-coroutines-core:$version"
+ const val coreJvm = "$group:kotlinx-coroutines-core-jvm:$version"
const val jdk8 = "$group:kotlinx-coroutines-jdk8:$version"
+ const val debug = "$group:kotlinx-coroutines-debug:$version"
const val test = "$group:kotlinx-coroutines-test:$version"
+ const val testJvm = "$group:kotlinx-coroutines-test-jvm:$version"
}
}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt
index dc6e943..8a8e0fb 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt
@@ -33,8 +33,8 @@ package io.spine.dependency.local
*/
@Suppress("ConstPropertyName")
object Base {
- const val version = "2.0.0-SNAPSHOT.232"
- const val versionForBuildScript = "2.0.0-SNAPSHOT.232"
+ const val version = "2.0.0-SNAPSHOT.307"
+ const val versionForBuildScript = "2.0.0-SNAPSHOT.307"
const val group = Spine.group
const val artifact = "spine-base"
const val lib = "$group:$artifact:$version"
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/BaseTypes.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/BaseTypes.kt
index 988cab3..adaaa79 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/BaseTypes.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/BaseTypes.kt
@@ -33,7 +33,7 @@ package io.spine.dependency.local
*/
@Suppress("ConstPropertyName")
object BaseTypes {
- const val version = "2.0.0-SNAPSHOT.126"
+ const val version = "2.0.0-SNAPSHOT.200"
const val group = Spine.group
const val artifact = "spine-base-types"
const val lib = "$group:$artifact:$version"
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Change.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Change.kt
index a5728f7..2436580 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Change.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Change.kt
@@ -33,7 +33,7 @@ package io.spine.dependency.local
*/
@Suppress("ConstPropertyName")
object Change {
- const val version = "2.0.0-SNAPSHOT.118"
+ const val version = "2.0.0-SNAPSHOT.200"
const val group = Spine.group
const val artifact = "spine-change"
const val lib = "$group:$artifact:$version"
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJava.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJava.kt
index c75d140..0015575 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJava.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJava.kt
@@ -34,7 +34,7 @@ package io.spine.dependency.local
@Suppress("ConstPropertyName", "unused")
object CoreJava {
const val group = Spine.group
- const val version = "2.0.0-SNAPSHOT.191"
+ const val version = "2.0.0-SNAPSHOT.300"
const val coreArtifact = "spine-core"
const val clientArtifact = "spine-client"
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Logging.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Logging.kt
index 0fd38f7..b1a00ab 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Logging.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Logging.kt
@@ -51,7 +51,7 @@ object Logging {
// Transitive dependencies.
// Make `public` and use them to force a version in a particular repository, if needed.
internal const val julBackend = "$group:spine-logging-jul-backend:$version"
- internal const val middleware = "$group:spine-logging-middleware:$version"
+ const val middleware = "$group:spine-logging-middleware:$version"
internal const val platformGenerator = "$group:spine-logging-platform-generator:$version"
internal const val jvmDefaultPlatform = "$group:spine-logging-jvm-default-platform:$version"
}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/McJava.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/McJava.kt
index ea96ec7..4b8a74f 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/McJava.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/McJava.kt
@@ -42,12 +42,12 @@ object McJava {
/**
* The version used to in the build classpath.
*/
- const val dogfoodingVersion = "2.0.0-SNAPSHOT.262"
+ const val dogfoodingVersion = "2.0.0-SNAPSHOT.307"
/**
* The version to be used for integration tests.
*/
- const val version = "2.0.0-SNAPSHOT.262"
+ const val version = "2.0.0-SNAPSHOT.307"
/**
* The ID of the Gradle plugin.
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoData.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoData.kt
index 4c49790..8d88aea 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoData.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoData.kt
@@ -73,7 +73,7 @@ object ProtoData {
* The version of ProtoData dependencies.
*/
val version: String
- private const val fallbackVersion = "0.90.1"
+ private const val fallbackVersion = "0.93.7"
/**
* The distinct version of ProtoData used by other build tools.
@@ -82,7 +82,7 @@ object ProtoData {
* transitional dependencies, this is the version used to build the project itself.
*/
val dogfoodingVersion: String
- private const val fallbackDfVersion = "0.90.1"
+ private const val fallbackDfVersion = "0.93.7"
/**
* The artifact for the ProtoData Gradle plugin.
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoTap.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoTap.kt
index 426099b..c811e58 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoTap.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoTap.kt
@@ -38,7 +38,7 @@ package io.spine.dependency.local
)
object ProtoTap {
const val group = "io.spine.tools"
- const val version = "0.8.7"
+ const val version = "0.9.1"
const val gradlePluginId = "io.spine.prototap"
const val api = "$group:prototap-api:$version"
const val gradlePlugin = "$group:prototap-gradle-plugin:$version"
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Spine.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Spine.kt
index a751f3e..d7b6d0c 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Spine.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Spine.kt
@@ -53,7 +53,7 @@ object Spine {
@Deprecated(message = "Please use `Time.lib`.", ReplaceWith("Time.lib"))
const val time = Time.lib
- @Deprecated(message = "Please use `Time.lib`.", ReplaceWith("Time.lib"))
+ @Deprecated(message = "Please use `Change.lib`.", ReplaceWith("Change.lib"))
const val change = Change.lib
@Deprecated(message = "Please use `Text.lib`.", ReplaceWith("Text.lib"))
@@ -68,13 +68,19 @@ object Spine {
@Deprecated(message = "Please use `ToolBase.psiJava` instead`.")
const val psiJava = "$toolsGroup:spine-psi-java:${ToolBase.version}"
- @Deprecated(message = "Please use `ToolBase.psiJava` instead`.")
+ @Deprecated(
+ message = "Please use `ToolBase.psiJava` instead`.",
+ ReplaceWith("ToolBase.psiJava")
+ )
const val psiJavaBundle = "$toolsGroup:spine-psi-java-bundle:${ToolBase.version}"
- @Deprecated(message = "Please use `ToolBase.lib` instead`.")
+ @Deprecated(message = "Please use `ToolBase.lib` instead`.", ReplaceWith("ToolBase.lib"))
const val toolBase = "$toolsGroup:spine-tool-base:${ToolBase.version}"
- @Deprecated(message = "Please use `ToolBase.pluginBase` instead`.")
+ @Deprecated(
+ message = "Please use `ToolBase.pluginBase` instead`.",
+ ReplaceWith("ToolBase.pluginBase")
+ )
const val pluginBase = "$toolsGroup:spine-plugin-base:${ToolBase.version}"
@Deprecated(
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/TestLib.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/TestLib.kt
index 50cae12..e7e6534 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/TestLib.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/TestLib.kt
@@ -33,7 +33,7 @@ package io.spine.dependency.local
*/
@Suppress("ConstPropertyName")
object TestLib {
- const val version = "2.0.0-SNAPSHOT.184"
+ const val version = "2.0.0-SNAPSHOT.185"
const val group = Spine.toolsGroup
const val artifact = "spine-testlib"
const val lib = "$group:$artifact:$version"
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt
index 56518ec..1f7e2a6 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt
@@ -33,7 +33,7 @@ package io.spine.dependency.local
*/
@Suppress("ConstPropertyName")
object Time {
- const val version = "2.0.0-SNAPSHOT.136"
+ const val version = "2.0.0-SNAPSHOT.200"
const val group = Spine.group
const val artifact = "spine-time"
const val lib = "$group:$artifact:$version"
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt
index 2265c07..b402a3d 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt
@@ -34,7 +34,7 @@ package io.spine.dependency.local
@Suppress("ConstPropertyName", "unused")
object ToolBase {
const val group = Spine.toolsGroup
- const val version = "2.0.0-SNAPSHOT.240"
+ const val version = "2.0.0-SNAPSHOT.302"
const val lib = "$group:spine-tool-base:$version"
const val pluginBase = "$group:spine-plugin-base:$version"
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt
index 5a711f9..4df0bcc 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt
@@ -36,7 +36,7 @@ object Validation {
/**
* The version of the Validation library artifacts.
*/
- const val version = "2.0.0-SNAPSHOT.183"
+ const val version = "2.0.0-SNAPSHOT.305"
const val group = "io.spine.validation"
private const val prefix = "spine-validation"
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/test/Kotest.kt b/buildSrc/src/main/kotlin/io/spine/dependency/test/Kotest.kt
index e4e3772..8de10ff 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/test/Kotest.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/test/Kotest.kt
@@ -35,7 +35,7 @@ package io.spine.dependency.test
*/
@Suppress("unused", "ConstPropertyName")
object Kotest {
- const val version = "5.8.0"
+ const val version = "5.9.1"
const val group = "io.kotest"
const val assertions = "$group:kotest-assertions-core:$version"
const val runnerJUnit5 = "$group:kotest-runner-junit5:$version"
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/test/KotlinCompileTesting.kt b/buildSrc/src/main/kotlin/io/spine/dependency/test/KotlinCompileTesting.kt
new file mode 100644
index 0000000..0e9110b
--- /dev/null
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/test/KotlinCompileTesting.kt
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2025, TeamDev. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Redistribution and use in source and/or binary forms, with or without
+ * modification, must retain the above copyright notice and the following
+ * disclaimer.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package io.spine.dependency.test
+
+/**
+ * A library for in-process compilation of Kotlin and Java code compilation.
+ *
+ * @see GitHub repo
+ */
+@Suppress("unused", "ConstPropertyName")
+object KotlinCompileTesting {
+ private const val version = "0.7.0"
+ private const val group = "dev.zacsweers.kctfork"
+ const val libCore = "$group:core:$version"
+ const val libKsp = "$group:ksp:$version"
+}
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/RunBuild.kt b/buildSrc/src/main/kotlin/io/spine/gradle/RunBuild.kt
index 60a7207..aa2759d 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/RunBuild.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/RunBuild.kt
@@ -32,6 +32,6 @@ package io.spine.gradle
open class RunBuild : RunGradle() {
init {
- task("build")
+ task("clean", "build")
}
}
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/RunGradle.kt b/buildSrc/src/main/kotlin/io/spine/gradle/RunGradle.kt
index c1b883a..8942630 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/RunGradle.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/RunGradle.kt
@@ -100,7 +100,7 @@ open class RunGradle : DefaultTask() {
}
@TaskAction
- private fun execute() {
+ public fun execute() {
// Ensure build error output log.
// Since we're executing this task in another process, we redirect error output to
// the file under the `_out` directory. Using the `build` directory for this purpose
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/checkstyle/CheckStyleConfig.kt b/buildSrc/src/main/kotlin/io/spine/gradle/checkstyle/CheckStyleConfig.kt
index ab67ffe..122a604 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/checkstyle/CheckStyleConfig.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/checkstyle/CheckStyleConfig.kt
@@ -28,7 +28,6 @@ package io.spine.gradle.checkstyle
import io.spine.dependency.build.CheckStyle
import org.gradle.api.Project
-import org.gradle.api.plugins.quality.Checkstyle
import org.gradle.api.plugins.quality.CheckstyleExtension
import org.gradle.api.plugins.quality.CheckstylePlugin
import org.gradle.kotlin.dsl.the
@@ -65,9 +64,13 @@ object CheckStyleConfig {
}
project.afterEvaluate {
- // Disables checking the test sources.
- val checkstyleTest = project.tasks.findByName("checkstyleTest") as Checkstyle
- checkstyleTest.enabled = false
+ // Disables checking the test sources and test fixtures.
+ arrayOf(
+ "checkstyleTest",
+ "checkstyleTestFixtures"
+ ).forEach {
+ task -> tasks.findByName(task)?.enabled = false
+ }
}
}
}
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/javac/ErrorProne.kt b/buildSrc/src/main/kotlin/io/spine/gradle/javac/ErrorProne.kt
index 34d14fc..84c6bcb 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/javac/ErrorProne.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/javac/ErrorProne.kt
@@ -51,6 +51,7 @@ import org.gradle.process.CommandLineArgumentProvider
*/
@Suppress("unused")
fun JavaCompile.configureErrorProne() {
+ options.compilerArgs.add("--should-stop=ifError=FLOW")
options.errorprone
.errorproneArgumentProviders
.add(ErrorProneConfig.ARGUMENTS)
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/javascript/JsContext.kt b/buildSrc/src/main/kotlin/io/spine/gradle/javascript/JsContext.kt
index b3bf786..ec5d872 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/javascript/JsContext.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/javascript/JsContext.kt
@@ -28,6 +28,8 @@ package io.spine.gradle.javascript
import java.io.File
import org.gradle.api.Project
+import org.gradle.kotlin.dsl.support.serviceOf
+import org.gradle.process.ExecOperations
/**
* Provides access to the current [JsEnvironment] and shortcuts for running `npm` tool.
@@ -47,8 +49,7 @@ open class JsContext(jsEnv: JsEnvironment, internal val project: Project)
*
* This [File] is used as a working directory.
*/
- fun File.npm(vararg args: String) = project.exec {
-
+ fun File.npm(vararg args: String) = project.serviceOf().exec {
workingDir(this@npm)
commandLine(npmExecutable)
args(*args)
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/javascript/plugin/Protobuf.kt b/buildSrc/src/main/kotlin/io/spine/gradle/javascript/plugin/Protobuf.kt
index 37f8a38..c1c2d64 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/javascript/plugin/Protobuf.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/javascript/plugin/Protobuf.kt
@@ -50,8 +50,6 @@ fun JsPlugins.protobuf() {
val protobufExt = project.extensions.getByType(ProtobufExtension::class.java)
protobufExt.apply {
- generatedFilesBaseDir = projectDir.path
-
protoc {
artifact = Protobuf.compiler
}
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/kotlin/KotlinConfig.kt b/buildSrc/src/main/kotlin/io/spine/gradle/kotlin/KotlinConfig.kt
index 0b4cc72..65cdebd 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/kotlin/KotlinConfig.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/kotlin/KotlinConfig.kt
@@ -27,12 +27,12 @@
package io.spine.gradle.kotlin
import org.gradle.jvm.toolchain.JavaLanguageVersion
+import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
-import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
/**
* Sets [Java toolchain](https://kotlinlang.org/docs/gradle.html#gradle-java-toolchains-support)
- * to the specified version (e.g. 11 or 8).
+ * to the specified version (e.g., 11 or 8).
*/
fun KotlinJvmProjectExtension.applyJvmToolchain(version: Int) {
jvmToolchain {
@@ -51,26 +51,19 @@ fun KotlinJvmProjectExtension.applyJvmToolchain(version: String) =
/**
* Opts-in to experimental features that we use in our codebase.
*/
-@Suppress("unused", "MagicNumber" /* Kotlin Compiler version. */)
-fun KotlinCompile.setFreeCompilerArgs() {
- // Avoid the "unsupported flag warning" for Kotlin compilers pre 1.9.20 and after 2.0.0.
- // See: https://youtrack.jetbrains.com/issue/KT-61573
- val expectActualClasses = KotlinVersion.CURRENT.run {
- if (isAtLeast(1, 9, 20) && major < 2) "-Xexpect-actual-classes"
- else ""
- }
- kotlinOptions {
- freeCompilerArgs = listOf(
+@Suppress("unused")
+fun KotlinJvmCompilerOptions.setFreeCompilerArgs() {
+ freeCompilerArgs.addAll(
+ listOf(
"-Xskip-prerelease-check",
"-Xjvm-default=all",
"-Xinline-classes",
- expectActualClasses,
"-opt-in=" +
"kotlin.contracts.ExperimentalContracts," +
"kotlin.io.path.ExperimentalPathApi," +
"kotlin.ExperimentalUnsignedTypes," +
"kotlin.ExperimentalStdlibApi," +
"kotlin.experimental.ExperimentalTypeInference",
- ).filter { it.isNotBlank() }
- }
+ )
+ )
}
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/protobuf/ProtoTaskExtensions.kt b/buildSrc/src/main/kotlin/io/spine/gradle/protobuf/ProtoTaskExtensions.kt
index 6ffcba9..6816669 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/protobuf/ProtoTaskExtensions.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/protobuf/ProtoTaskExtensions.kt
@@ -42,7 +42,7 @@ import org.gradle.kotlin.dsl.getByType
import org.gradle.plugins.ide.idea.GenerateIdeaModule
import org.gradle.plugins.ide.idea.model.IdeaModel
import org.gradle.plugins.ide.idea.model.IdeaModule
-import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
import titleCaseFirstChar
/**
@@ -245,7 +245,7 @@ fun GenerateProtoTask.excludeProtocOutput() {
* Make sure Kotlin compilation explicitly depends on this `GenerateProtoTask` to avoid racing.
*/
fun GenerateProtoTask.setupKotlinCompile() {
- val kotlinCompile = project.kotlinCompileFor(sourceSet)
+ val kotlinCompile = project.kotlinCompilationTaskFor(sourceSet)
kotlinCompile?.dependsOn(this)
}
@@ -273,16 +273,9 @@ private fun processResourceTaskName(sourceSetName: String): String {
return "process${infix}Resources"
}
-/**
- * Attempts to obtain the Kotlin compilation Gradle task for the given source set.
- *
- * Typically, the task is named by a pattern: `compileKotlin`, or just
- * `compileKotlin` if the source set name is `"main"`. If the task does not fit this described
- * pattern, this method will not find it.
- */
-private fun Project.kotlinCompileFor(sourceSet: SourceSet): KotlinCompile<*>? {
+private fun Project.kotlinCompilationTaskFor(sourceSet: SourceSet): KotlinCompilationTask<*>? {
val taskName = sourceSet.getCompileTaskName("Kotlin")
- return tasks.findByName(taskName) as KotlinCompile<*>?
+ return tasks.named(taskName, KotlinCompilationTask::class.java).orNull
}
private fun File.residesIn(directory: File): Boolean =
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/report/pom/DependencyWriter.kt b/buildSrc/src/main/kotlin/io/spine/gradle/report/pom/DependencyWriter.kt
index af3873c..eda2493 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/report/pom/DependencyWriter.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/report/pom/DependencyWriter.kt
@@ -182,8 +182,8 @@ private fun Project.deduplicate(dependencies: Set): List
- group.value.maxByOrNull { dep -> dep.version }!!
- }
+ group.value.maxByOrNull { dep -> dep.version ?: "" }
+ }.filterNotNull()
return filtered
}
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/report/pom/ModuleDependency.kt b/buildSrc/src/main/kotlin/io/spine/gradle/report/pom/ModuleDependency.kt
index 13d4177..3d72de1 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/report/pom/ModuleDependency.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/report/pom/ModuleDependency.kt
@@ -40,7 +40,7 @@ internal class ModuleDependency(
val project: Project,
val configuration: Configuration,
private val dependency: Dependency,
- private val factualVersion: String = dependency.version!!
+ private val factualVersion: String? = dependency.version
) : Dependency by dependency, Comparable {
@@ -52,7 +52,7 @@ internal class ModuleDependency(
.thenBy { it.factualVersion }
}
- override fun getVersion(): String = factualVersion
+ override fun getVersion(): String? = factualVersion
/**
* A project dependency with its [scope][DependencyScope].
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/report/pom/PomGenerator.kt b/buildSrc/src/main/kotlin/io/spine/gradle/report/pom/PomGenerator.kt
index 023f17c..9144e2f 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/report/pom/PomGenerator.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/report/pom/PomGenerator.kt
@@ -75,20 +75,21 @@ object PomGenerator {
plugin(BasePlugin::class.java)
}
- val task = project.tasks.create("generatePom")
- task.doLast {
- val pomFile = project.projectDir.resolve("pom.xml")
- project.delete(pomFile)
+ val task = project.tasks.register("generatePom") {
+ doLast {
+ val pomFile = project.projectDir.resolve("pom.xml")
+ project.delete(pomFile)
- val projectData = project.metadata()
- val writer = PomXmlWriter(projectData)
- writer.writeTo(pomFile)
+ val projectData = project.metadata()
+ val writer = PomXmlWriter(projectData)
+ writer.writeTo(pomFile)
+ }
+
+ val assembleTask = project.tasks.findByName("assemble")!!
+ dependsOn(assembleTask)
}
val buildTask = project.tasks.findByName("build")!!
buildTask.finalizedBy(task)
-
- val assembleTask = project.tasks.findByName("assemble")!!
- task.dependsOn(assembleTask)
}
}
diff --git a/buildSrc/src/main/kotlin/jvm-module.gradle.kts b/buildSrc/src/main/kotlin/jvm-module.gradle.kts
index 385a3a8..5b1577e 100644
--- a/buildSrc/src/main/kotlin/jvm-module.gradle.kts
+++ b/buildSrc/src/main/kotlin/jvm-module.gradle.kts
@@ -47,11 +47,9 @@ import io.spine.gradle.kotlin.setFreeCompilerArgs
import io.spine.gradle.report.license.LicenseReporter
import io.spine.gradle.testing.configureLogging
import io.spine.gradle.testing.registerTestTasks
-import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
`java-library`
- idea
id("net.ltgt.errorprone")
id("pmd-settings")
id("project-report")
@@ -99,11 +97,8 @@ fun Module.configureKotlin(javaVersion: JavaLanguageVersion) {
kotlin {
applyJvmToolchain(javaVersion.asInt())
explicitApi()
- }
-
- tasks {
- withType().configureEach {
- kotlinOptions.jvmTarget = javaVersion.toString()
+ compilerOptions {
+ jvmTarget.set(BuildSettings.jvmTarget)
setFreeCompilerArgs()
}
}
@@ -195,7 +190,9 @@ fun Module.setTaskDependencies(generatedDir: String) {
publish?.dependsOn("${project.path}:updateGitHubPages")
}
}
- configureTaskDependencies()
+ afterEvaluate {
+ configureTaskDependencies()
+ }
}
fun Module.configureGitHubPages() {
diff --git a/buildSrc/src/main/kotlin/write-manifest.gradle.kts b/buildSrc/src/main/kotlin/write-manifest.gradle.kts
index 3a7b98a..b63d327 100644
--- a/buildSrc/src/main/kotlin/write-manifest.gradle.kts
+++ b/buildSrc/src/main/kotlin/write-manifest.gradle.kts
@@ -103,7 +103,7 @@ val manifestAttributes = mapOf(
* when running tests. We cannot depend on the `Jar` from `resources` because it would
* form a circular dependency.
*/
-val exposeManifestForTests by tasks.creating {
+val exposeManifestForTests by tasks.registering {
val outputFile = layout.buildDirectory.file("resources/main/META-INF/MANIFEST.MF")
outputs.file(outputFile).withPropertyName("manifestFile")
diff --git a/buildSrc/src/main/resources/dokka/styles/custom-styles.css b/buildSrc/src/main/resources/dokka/styles/custom-styles.css
index ca629f9..8c442fe 100644
--- a/buildSrc/src/main/resources/dokka/styles/custom-styles.css
+++ b/buildSrc/src/main/resources/dokka/styles/custom-styles.css
@@ -1,11 +1,11 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2023, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Redistribution and use in source and/or binary forms, with or without
* modification, must retain the above copyright notice and the following
diff --git a/config b/config
index f695438..ed512da 160000
--- a/config
+++ b/config
@@ -1 +1 @@
-Subproject commit f6954386c224e9444129108f9bcf796812dd9b0c
+Subproject commit ed512da1e96e801278fa8c2531081c37c2260d97
diff --git a/dependencies.md b/dependencies.md
index c192c6c..1cec8c3 100644
--- a/dependencies.md
+++ b/dependencies.md
@@ -35,7 +35,7 @@
* **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.23.0.
+1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.36.0.
* **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
* **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -65,10 +65,6 @@
1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 3.25.1.
* **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
-1. **Group** : it.unimi.dsi. **Name** : fastutil-core. **Version** : 8.5.12.
- * **Project URL:** [http://fastutil.di.unimi.it/](http://fastutil.di.unimi.it/)
- * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)
-
1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0.
* **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
* **License:** [The MIT License](http://opensource.org/licenses/MIT)
@@ -77,55 +73,55 @@
* **Project URL:** [https://freemarker.apache.org/](https://freemarker.apache.org/)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 24.0.1.
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2.
* **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.5.2.
+1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.7.3.
* **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.5.2.
+1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.7.3.
* **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.20.
+1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 2.0.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.20.
+1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 2.0.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 1.9.23.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 1.9.23.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk8. **Version** : 1.9.23.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk8. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.9.0.
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.1.
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.9.0.
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.1.
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.9.0.
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.1.
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -143,18 +139,10 @@
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
## Compile, tests, and tooling
-1. **Group** : aopalliance. **Name** : aopalliance. **Version** : 1.0.
- * **Project URL:** [http://aopalliance.sourceforge.net](http://aopalliance.sourceforge.net)
- * **License:** Public Domain
-
1. **Group** : com.beust. **Name** : jcommander. **Version** : 1.48.
* **Project URL:** [http://beust.com/jcommander](http://beust.com/jcommander)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.beust. **Name** : jcommander. **Version** : 1.82.
- * **Project URL:** [https://jcommander.org](https://jcommander.org)
- * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.
* **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -217,23 +205,23 @@
* **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.errorprone. **Name** : error_prone_annotation. **Version** : 2.23.0.
+1. **Group** : com.google.errorprone. **Name** : error_prone_annotation. **Version** : 2.36.0.
* **Project URL:** [https://errorprone.info/error_prone_annotation](https://errorprone.info/error_prone_annotation)
* **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.23.0.
+1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.36.0.
* **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
* **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.errorprone. **Name** : error_prone_check_api. **Version** : 2.23.0.
+1. **Group** : com.google.errorprone. **Name** : error_prone_check_api. **Version** : 2.36.0.
* **Project URL:** [https://errorprone.info/error_prone_check_api](https://errorprone.info/error_prone_check_api)
* **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.errorprone. **Name** : error_prone_core. **Version** : 2.23.0.
+1. **Group** : com.google.errorprone. **Name** : error_prone_core. **Version** : 2.36.0.
* **Project URL:** [https://errorprone.info/error_prone_core](https://errorprone.info/error_prone_core)
* **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.errorprone. **Name** : error_prone_type_annotations. **Version** : 2.23.0.
+1. **Group** : com.google.errorprone. **Name** : error_prone_type_annotations. **Version** : 2.36.0.
* **Project URL:** [https://errorprone.info/error_prone_type_annotations](https://errorprone.info/error_prone_type_annotations)
* **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -241,6 +229,9 @@
* **Project URL:** [https://github.com/google/error-prone-javac](https://github.com/google/error-prone-javac)
* **License:** [GNU General Public License, version 2, with the Classpath Exception](http://openjdk.java.net/legal/gplv2+ce.html)
+1. **Group** : com.google.googlejavaformat. **Name** : google-java-format. **Version** : 1.19.1.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.1.
* **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -255,10 +246,6 @@
1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava.
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.inject. **Name** : guice. **Version** : 5.1.0.
- * **Project URL:** [https://github.com/google/guice](https://github.com/google/guice)
- * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 2.8.
* **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -290,6 +277,14 @@
* **Project URL:** [http://commons.apache.org/collections/](http://commons.apache.org/collections/)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : dev.drewhamilton.poko. **Name** : poko-annotations. **Version** : 0.17.1.
+ * **Project URL:** [https://github.com/drewhamilton/Poko](https://github.com/drewhamilton/Poko)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : dev.drewhamilton.poko. **Name** : poko-annotations-jvm. **Version** : 0.17.1.
+ * **Project URL:** [https://github.com/drewhamilton/Poko](https://github.com/drewhamilton/Poko)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : info.picocli. **Name** : picocli. **Version** : 4.7.4.
* **Project URL:** [https://picocli.info](https://picocli.info)
* **License:** [The Apache Software License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -298,149 +293,145 @@
* **Project URL:** [https://github.com/davidburstrom/contester](https://github.com/davidburstrom/contester)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.4.0.
+1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k. **Version** : 0.6.0.
* **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k-jvm. **Version** : 0.4.0.
+1. **Group** : io.github.detekt.sarif4k. **Name** : sarif4k-jvm. **Version** : 0.6.0.
* **Project URL:** [https://detekt.github.io/detekt](https://detekt.github.io/detekt)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.github.eisop. **Name** : dataflow-errorprone. **Version** : 3.34.0-eisop1.
+1. **Group** : io.github.eisop. **Name** : dataflow-errorprone. **Version** : 3.41.0-eisop1.
* **Project URL:** [https://eisop.github.io/](https://eisop.github.io/)
* **License:** [GNU General Public License, version 2 (GPL2), with the classpath exception](http://www.gnu.org/software/classpath/license.html)
1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.12.
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-api. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-api. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-cli. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-cli. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-core. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-core. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-metrics. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-metrics. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-parser. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-parser. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-psi-utils. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-psi-utils. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-html. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-html. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-md. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-md. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-sarif. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-sarif. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-txt. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-txt. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-xml. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-report-xml. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-complexity. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-complexity. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-coroutines. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-coroutines. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-documentation. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-documentation. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-empty. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-empty. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-errorprone. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-errorprone. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-exceptions. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-exceptions. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-naming. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-naming. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-performance. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-performance. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-style. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-rules-style. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-tooling. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-tooling. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-utils. **Version** : 1.23.0.
+1. **Group** : io.gitlab.arturbosch.detekt. **Name** : detekt-utils. **Version** : 1.23.8.
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.kotest. **Name** : kotest-assertions-api. **Version** : 5.8.0.
+1. **Group** : io.kotest. **Name** : kotest-assertions-api. **Version** : 5.9.1.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-api-jvm. **Version** : 5.8.0.
+1. **Group** : io.kotest. **Name** : kotest-assertions-api-jvm. **Version** : 5.9.1.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 5.8.0.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 5.9.1.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 5.8.0.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 5.9.1.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 5.8.0.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 5.9.1.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 5.8.0.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 5.9.1.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 5.8.0.
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 5.9.1.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 5.8.0.
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 5.9.1.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : it.unimi.dsi. **Name** : fastutil-core. **Version** : 8.5.12.
- * **Project URL:** [http://fastutil.di.unimi.it/](http://fastutil.di.unimi.it/)
- * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)
-
1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2.
* **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250)
* **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE)
@@ -453,11 +444,6 @@
* **Project URL:** [http://junit.org](http://junit.org)
* **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html)
-1. **Group** : net.java.dev.jna. **Name** : jna. **Version** : 5.6.0.
- * **Project URL:** [https://github.com/java-native-access/jna](https://github.com/java-native-access/jna)
- * **License:** [Apache License v2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
- * **License:** [LGPL, version 2.1](http://www.gnu.org/licenses/licenses.html)
-
1. **Group** : net.sf.saxon. **Name** : Saxon-HE. **Version** : 12.2.
* **Project URL:** [http://www.saxonica.com/](http://www.saxonica.com/)
* **License:** [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/2.0/)
@@ -518,17 +504,17 @@
* **Project URL:** [http://hamcrest.org/JavaHamcrest/](http://hamcrest.org/JavaHamcrest/)
* **License:** [BSD License 3](http://opensource.org/licenses/BSD-3-Clause)
-1. **Group** : org.jacoco. **Name** : org.jacoco.agent. **Version** : 0.8.8.
- * **License:** [Eclipse Public License 2.0](https://www.eclipse.org/legal/epl-2.0/)
+1. **Group** : org.jacoco. **Name** : org.jacoco.agent. **Version** : 0.8.12.
+ * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/)
-1. **Group** : org.jacoco. **Name** : org.jacoco.ant. **Version** : 0.8.8.
- * **License:** [Eclipse Public License 2.0](https://www.eclipse.org/legal/epl-2.0/)
+1. **Group** : org.jacoco. **Name** : org.jacoco.ant. **Version** : 0.8.12.
+ * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/)
-1. **Group** : org.jacoco. **Name** : org.jacoco.core. **Version** : 0.8.8.
- * **License:** [Eclipse Public License 2.0](https://www.eclipse.org/legal/epl-2.0/)
+1. **Group** : org.jacoco. **Name** : org.jacoco.core. **Version** : 0.8.12.
+ * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/)
-1. **Group** : org.jacoco. **Name** : org.jacoco.report. **Version** : 0.8.8.
- * **License:** [Eclipse Public License 2.0](https://www.eclipse.org/legal/epl-2.0/)
+1. **Group** : org.jacoco. **Name** : org.jacoco.report. **Version** : 0.8.12.
+ * **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/)
1. **Group** : org.javassist. **Name** : javassist. **Version** : 3.28.0-GA.
* **Project URL:** [http://www.javassist.org/](http://www.javassist.org/)
@@ -536,27 +522,31 @@
* **License:** [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html)
* **License:** [MPL 1.1](http://www.mozilla.org/MPL/MPL-1.1.html)
-1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 24.0.1.
+1. **Group** : org.jcommander. **Name** : jcommander. **Version** : 1.85.
+ * **Project URL:** [https://jcommander.org](https://jcommander.org)
+ * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2.
* **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.5.2.
+1. **Group** : org.jetbrains. **Name** : markdown. **Version** : 0.7.3.
* **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.5.2.
+1. **Group** : org.jetbrains. **Name** : markdown-jvm. **Version** : 0.7.3.
* **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 1.9.20.
+1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 2.0.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 1.9.20.
+1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 2.0.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 1.9.20.
+1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 2.0.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -564,67 +554,83 @@
* **Project URL:** [https://github.com/JetBrains/intellij-deps-trove4j](https://github.com/JetBrains/intellij-deps-trove4j)
* **License:** [GNU LESSER GENERAL PUBLIC LICENSE 2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 1.8.21.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-api. **Version** : 2.1.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-impl. **Version** : 2.1.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.0.21.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 1.8.22.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 1.8.21.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-runner. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 1.8.22.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-client. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-commonizer-embeddable. **Version** : 1.8.22.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.0.21.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 1.9.23.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 1.8.21.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-commonizer-embeddable. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 1.8.22.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-common. **Version** : 1.8.22.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.0.21.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-embeddable. **Version** : 1.8.22.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-impl-embeddable. **Version** : 1.8.22.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-common. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-jvm. **Version** : 1.8.22.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-embeddable. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 1.9.23.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-impl-embeddable. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 1.9.23.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-jvm. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 1.9.23.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk8. **Version** : 1.9.23.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-common. **Version** : 2.1.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk7. **Version** : 2.1.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib-jdk8. **Version** : 2.1.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -632,19 +638,27 @@
* **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.9.0.
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.1.
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.9.0.
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.1.
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.9.0.
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.1.
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.9.0.
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.6.4.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.1.
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -676,6 +690,10 @@
* **Project URL:** [https://jsoup.org/](https://jsoup.org/)
* **License:** [The MIT License](https://jsoup.org/license)
+1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0.
+ * **Project URL:** [http://jspecify.org/](http://jspecify.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.junit. **Name** : junit-bom. **Version** : 5.10.0.
* **Project URL:** [https://junit.org/junit5/](https://junit.org/junit5/)
* **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
@@ -719,7 +737,7 @@
* **License:** [BSD-3-Clause](https://asm.ow2.io/license.html)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.pcollections. **Name** : pcollections. **Version** : 3.1.4.
+1. **Group** : org.pcollections. **Name** : pcollections. **Version** : 4.0.1.
* **Project URL:** [https://github.com/hrldcpr/pcollections](https://github.com/hrldcpr/pcollections)
* **License:** [The MIT License](https://opensource.org/licenses/mit-license.php)
@@ -728,7 +746,7 @@
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
* **License:** [WTFPL](http://www.wtfpl.net/)
-1. **Group** : org.snakeyaml. **Name** : snakeyaml-engine. **Version** : 2.6.
+1. **Group** : org.snakeyaml. **Name** : snakeyaml-engine. **Version** : 2.7.
* **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml-engine](https://bitbucket.org/snakeyaml/snakeyaml-engine)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -739,4 +757,4 @@
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Wed Feb 05 19:37:51 WET 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
\ No newline at end of file
+This report was generated on **Fri Apr 11 18:42:46 WEST 2025** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
\ No newline at end of file
diff --git a/dokka-extensions/build.gradle.kts b/dokka-extensions/build.gradle.kts
index c60e200..a69f41e 100644
--- a/dokka-extensions/build.gradle.kts
+++ b/dokka-extensions/build.gradle.kts
@@ -26,9 +26,6 @@
import io.spine.dependency.build.Dokka
import io.spine.dependency.local.Base
-import io.spine.dependency.local.TestLib
-import io.spine.dependency.test.JUnit
-import io.spine.dependency.test.Kotest
plugins {
`detekt-code-analysis`
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index afba109..9bbc975 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 87c876a..37f853b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,32 +1,7 @@
-#
-# Copyright 2025, TeamDev. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Redistribution and use in source and/or binary forms, with or without
-# modification, must retain the above copyright notice and the following
-# disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
networkTimeout=10000
+validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index 65dcd68..965e398 100755
--- a/gradlew
+++ b/gradlew
@@ -7,7 +7,7 @@
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
-# https://www.apache.org/licenses/LICENSE-2.0
+# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
@@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
-# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -83,10 +83,8 @@ done
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
-APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -133,10 +131,13 @@ location of your Java installation."
fi
else
JAVACMD=java
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
+ fi
fi
# Increase the maximum file descriptors if we can.
@@ -144,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
- # shellcheck disable=SC3045
+ # shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
@@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
- # shellcheck disable=SC3045
+ # shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -197,11 +198,15 @@ if "$cygwin" || "$msys" ; then
done
fi
-# Collect all arguments for the java command;
-# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
-# shell script including quotes and variable substitutions, so put them in
-# double quotes to make sure that they get re-expanded; and
-# * put everything else in single quotes, so that it's not re-expanded.
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Collect all arguments for the java command:
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# and any embedded shellness will be escaped.
+# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
diff --git a/gradlew.bat b/gradlew.bat
index 93e3f59..9d21a21 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -13,6 +13,8 @@
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
+@rem SPDX-License-Identifier: Apache-2.0
+@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@@ -43,11 +45,11 @@ set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
+echo. 1>&2
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
goto fail
@@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
+echo. 1>&2
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
goto fail
diff --git a/pom.xml b/pom.xml
index 7f0d9d0..40ab750 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,19 +26,19 @@ all modules and does not describe the project structure per-subproject.
io.spine
spine-base
- 2.0.0-SNAPSHOT.232
+ 2.0.0-SNAPSHOT.307
compile
org.jetbrains.dokka
dokka-base
- 1.9.20
+ 2.0.0
compile
org.jetbrains.kotlin
- kotlin-stdlib-jdk8
- 1.9.23
+ kotlin-stdlib
+ 2.1.20
compile
@@ -50,7 +50,7 @@ all modules and does not describe the project structure per-subproject.
io.kotest
kotest-assertions-core
- 5.8.0
+ 5.9.1
test
@@ -80,18 +80,18 @@ all modules and does not describe the project structure per-subproject.
com.google.errorprone
error_prone_annotations
- 2.23.0
+ 2.36.0
provided
com.google.errorprone
error_prone_core
- 2.23.0
+ 2.36.0
com.google.errorprone
error_prone_type_annotations
- 2.23.0
+ 2.36.0
provided
@@ -107,7 +107,7 @@ all modules and does not describe the project structure per-subproject.
io.gitlab.arturbosch.detekt
detekt-cli
- 1.23.0
+ 1.23.8
javax.annotation
@@ -129,33 +129,38 @@ all modules and does not describe the project structure per-subproject.
org.jacoco
org.jacoco.agent
- 0.8.8
+ 0.8.12
org.jacoco
org.jacoco.ant
- 0.8.8
+ 0.8.12
org.jetbrains.dokka
dokka-core
- 1.9.20
+ 2.0.0
provided
+
+ org.jetbrains.kotlin
+ kotlin-build-tools-impl
+ 2.1.20
+
org.jetbrains.kotlin
kotlin-compiler-embeddable
- 1.8.22
+ 2.1.20
org.jetbrains.kotlin
kotlin-klib-commonizer-embeddable
- 1.8.22
+ 2.1.20
org.jetbrains.kotlin
kotlin-scripting-compiler-embeddable
- 1.8.22
+ 2.1.20
diff --git a/version.gradle.kts b/version.gradle.kts
index 6a471ac..2e191d0 100644
--- a/version.gradle.kts
+++ b/version.gradle.kts
@@ -29,4 +29,4 @@
*
* For dependencies on Spine modules please see [io.spine.dependency.local.Spine].
*/
-val versionToPublish: String by extra("2.0.0-SNAPSHOT.6")
+val versionToPublish: String by extra("2.0.0-SNAPSHOT.7")