diff --git a/build.gradle.kts b/build.gradle.kts index aaca5a054..eee7b93c1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -114,6 +114,8 @@ plugins { val gradlePluginModule = "gradle-plugin" spinePublishing { + artifactPrefix = "spine-" + toolArtifactPrefix = "time-" modules = productionModules.map { it.name }.toSet() - gradlePluginModule modulesWithCustomPublishing = setOf(gradlePluginModule) destinations = with(PublishingRepos) { diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 227e6d262..1a3fc8a64 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -141,6 +141,20 @@ val koverVersion = "0.9.1" */ val shadowVersion = "9.2.2" +/** + * The version of JUnit used to test the build scripts. + * + * @see [io.spine.dependency.test.JUnit] + */ +val junitVersion = "6.0.3" + +/** + * The version of Kotest used to test the build scripts. + * + * @see [io.spine.dependency.test.Kotest] + */ +val kotestVersion = "6.1.10" + configurations.all { resolutionStrategy { force( @@ -192,6 +206,15 @@ dependencies { ).forEach { implementation(it) } + + testImplementation(platform("org.junit:junit-bom:$junitVersion")) + testImplementation("org.junit.jupiter:junit-jupiter") + testImplementation("io.kotest:kotest-assertions-core:$kotestVersion") + testRuntimeOnly("org.junit.platform:junit-platform-launcher") +} + +tasks.test { + useJUnitPlatform() } dependOnBuildSrcJar() diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt index 0b545b1e0..344e8a13f 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt @@ -46,12 +46,12 @@ object CoreJvmCompiler { /** * The version used to in the build classpath. */ - const val dogfoodingVersion = "2.0.0-SNAPSHOT.055" + const val dogfoodingVersion = "2.0.0-SNAPSHOT.058" /** * The version to be used for integration tests. */ - const val version = "2.0.0-SNAPSHOT.055" + const val version = "2.0.0-SNAPSHOT.058" /** * The ID of the Gradle plugin. 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 629264620..363e8a305 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt @@ -1,5 +1,5 @@ /* - * Copyright 2025, TeamDev. All rights reserved. + * Copyright 2026, 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. @@ -40,7 +40,7 @@ import io.spine.dependency.Dependency ) object Time : Dependency() { override val group = Spine.group - override val version = "2.0.0-SNAPSHOT.232" + override val version = "2.0.0-SNAPSHOT.234" private const val infix = "spine-time" fun lib(version: String): String = "$group:$infix:$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 872127af2..c4b9b6dc7 100644 --- a/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt +++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt @@ -34,8 +34,8 @@ package io.spine.dependency.local @Suppress("ConstPropertyName", "unused") object ToolBase { const val group = Spine.toolsGroup - const val version = "2.0.0-SNAPSHOT.375" - const val dogfoodingVersion = "2.0.0-SNAPSHOT.375" + const val version = "2.0.0-SNAPSHOT.376" + const val dogfoodingVersion = "2.0.0-SNAPSHOT.376" const val lib = "$group:tool-base:$version" const val classicCodegen = "$group:classic-codegen:$version" 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 bc5a36c12..58fb52876 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 = "6.0.4" + const val version = "6.1.10" const val group = "io.kotest" const val gradlePluginId = "io.kotest" const val assertions = "$group:kotest-assertions-core:$version" diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/docs/UpdatePluginVersion.kt b/buildSrc/src/main/kotlin/io/spine/gradle/docs/UpdatePluginVersion.kt new file mode 100644 index 000000000..a7f269f94 --- /dev/null +++ b/buildSrc/src/main/kotlin/io/spine/gradle/docs/UpdatePluginVersion.kt @@ -0,0 +1,125 @@ +/* + * Copyright 2026, 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.gradle.docs + +import java.io.File +import org.gradle.api.DefaultTask +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.provider.Property +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.InputDirectory +import org.gradle.api.tasks.Optional +import org.gradle.api.tasks.TaskAction + +/** + * Updates the version of a Gradle plugin in `build.gradle.kts` files. + * + * The task searches for plugin declarations in the format + * `id("plugin-id") version "version-number"` and replaces + * the version number with the one found in the version script file. + * + * @property directory + * The directory to scan recursively for `build.gradle.kts` files. + * @property version + * The version number to set for the plugin. + * @property pluginId + * The ID of the plugin whose version should be updated. + * @property kotlinVersion + * Optional. If set, updates the version of the Kotlin plugin declared with + * `kotlin("…") version "…"` syntax in the `plugins` block. + * This option works in combination with the [version] and [pluginId] properties. + */ +abstract class UpdatePluginVersion : DefaultTask() { + + @get:InputDirectory + abstract val directory: DirectoryProperty + + @get:Input + abstract val version: Property + + @get:Input + abstract val pluginId: Property + + @get:Input + @get:Optional + abstract val kotlinVersion: Property + + /** + * Updates plugin versions in build files within the path in the [directory]. + */ + @TaskAction + fun update() { + val rootDir = directory.get().asFile + + val kotlinVersionSet = kotlinVersion.isPresent + val kotlinVer = kotlinVersion.orNull + val id = pluginId.get() + val ver = version.get() + + rootDir.walkTopDown() + .filter { it.name == "build.gradle.kts" } + .forEach { file -> + if (kotlinVersionSet && kotlinVer != null) { + updateKotlinPluginVersion(file, kotlinVer) + } + updatePluginVersion(file, id, ver) + } + } + + @Suppress("MemberNameEqualsClassName") + private fun updatePluginVersion(file: File, id: String, version: String) { + val content = file.readText() + // Regex to match: id("plugin-id") version "version-number" + val regex = """id\("$id"\)\s+version\s+"([^"]+)"""".toRegex() + + if (regex.containsMatchIn(content)) { + val updatedContent = regex.replace(content) { + "id(\"$id\") version \"$version\"" + } + if (content != updatedContent) { + file.writeText(updatedContent) + logger.info("Updated version of '$id' in `${file.absolutePath}`.") + } + } + } + + private fun updateKotlinPluginVersion(file: File, kotlinVersion: String) { + val content = file.readText() + // Regex to match Kotlin plugin declarations like: kotlin("jvm") version "1.9.0" + val regex = """kotlin\("([^"]+)"\)\s+version\s+"([^"]+)"""".toRegex() + if (regex.containsMatchIn(content)) { + val updatedContent = regex.replace(content) { matchResult -> + val plugin = matchResult.groupValues[1] + "kotlin(\"$plugin\") version \"$kotlinVersion\"" + } + if (content != updatedContent) { + file.writeText(updatedContent) + logger.info("Updated Kotlin plugin version in `${file.absolutePath}`.") + } + } + } +} diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/publish/SpinePublishing.kt b/buildSrc/src/main/kotlin/io/spine/gradle/publish/SpinePublishing.kt index 480175fef..37fdf5f7d 100644 --- a/buildSrc/src/main/kotlin/io/spine/gradle/publish/SpinePublishing.kt +++ b/buildSrc/src/main/kotlin/io/spine/gradle/publish/SpinePublishing.kt @@ -1,5 +1,5 @@ /* - * Copyright 2025, TeamDev. All rights reserved. + * Copyright 2026, 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. @@ -29,6 +29,7 @@ package io.spine.gradle.publish import io.spine.gradle.repo.Repository +import java.util.Locale import org.gradle.api.Project import org.gradle.api.publish.maven.plugins.MavenPublishPlugin import org.gradle.kotlin.dsl.apply @@ -145,9 +146,10 @@ import org.gradle.kotlin.dsl.findByType * @see [artifacts] * @see SpinePublishing */ -fun Project.spinePublishing(block: SpinePublishing.() -> Unit) { +fun Project.spinePublishing(block: SpinePublishing.() -> Unit): SpinePublishing { apply() val name = SpinePublishing::class.java.simpleName + .replaceFirstChar { it.lowercase(Locale.getDefault()) } val extension = with(extensions) { findByType() ?: create(name, project) } @@ -155,6 +157,7 @@ fun Project.spinePublishing(block: SpinePublishing.() -> Unit) { block() configured() } + return extension } /** @@ -182,6 +185,12 @@ open class SpinePublishing(private val project: Project) { * The default prefix added before a module name when publishing artifacts. */ const val DEFAULT_PREFIX = "spine-" + + /** + * The reserved value that means that no prefix should be added + * to a tool module's artifact ID. + */ + const val NONE_PREFIX = "NONE" } private val testJar = TestJar() @@ -250,10 +259,23 @@ open class SpinePublishing(private val project: Project) { lateinit var destinations: Set /** - * A prefix to be added before the name of each artifact. + * A prefix to be added before the name of each artifact, if it does not belong + * to the Maven group `"io.spine.tools"`. + * + * @see toolArtifactPrefix */ var artifactPrefix: String = DEFAULT_PREFIX + /** + * A prefix to be added before a module name if it belongs to + * the Maven group `"io.spine.tools"`. + * + * Use `"NONE"` if you need no prefix before tool module names. + * + * @see artifactPrefix + */ + var toolArtifactPrefix: String = "" + /** * Allows enabling publishing of [testJar] artifact, containing compilation output * of "test" source set. @@ -389,10 +411,26 @@ open class SpinePublishing(private val project: Project) { /** * Obtains an artifact ID for the given project. * - * It consists of a project's name and [prefix][artifactPrefix]: - * ``. + * @see artifactPrefix + * @see toolArtifactPrefix */ - fun artifactId(project: Project): String = "$artifactPrefix${project.name}" + fun artifactId(project: Project): String { + if (project.isTool) { + check(!toolArtifactPrefix.isEmpty()) { + "Artifact prefix cannot be empty for tool modules. " + + "Please set the `toolArtifactPrefix` property in `spinePublishing`. " + + "Use `\"NONE\"` to have an empty prefix for tool modules." + } + val prefix = + if (toolArtifactPrefix == NONE_PREFIX) { "" } + else { toolArtifactPrefix } + return "$prefix${project.name}" + } + return "$artifactPrefix${project.name}" + } + + private val Project.isTool: Boolean + get() = group == "io.spine.tools" /** * Ensures that all modules, marked as included into [testJar] publishing, diff --git a/buildSrc/src/test/kotlin/io/spine/gradle/docs/UpdatePluginVersionTest.kt b/buildSrc/src/test/kotlin/io/spine/gradle/docs/UpdatePluginVersionTest.kt new file mode 100644 index 000000000..1674b3d34 --- /dev/null +++ b/buildSrc/src/test/kotlin/io/spine/gradle/docs/UpdatePluginVersionTest.kt @@ -0,0 +1,119 @@ +/* + * Copyright 2026, 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.gradle.docs + +import io.kotest.matchers.string.shouldContain +import java.io.File +import org.gradle.testfixtures.ProjectBuilder +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.DisplayName +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.io.TempDir + +@DisplayName("`UpdatePluginVersion` should") +class UpdatePluginVersionTest { + + @TempDir + lateinit var tempDir: File + + private lateinit var buildFile: File + + @BeforeEach + fun setUp() { + val subDir = File(tempDir, "subproject") + subDir.mkdir() + buildFile = File(subDir, "build.gradle.kts") + buildFile.writeText(""" + plugins { + id("io.spine.validation") version "1.0.0" + id("other-plugin") version "0.1.0" + } + """.trimIndent()) + } + + @Test + fun `update plugin version in build file`() { + val project = ProjectBuilder.builder().build() + val task = project.tasks.register("updatePluginVersion", UpdatePluginVersion::class.java) { + directory.set(tempDir) + version.set("2.0.0-TEST") + pluginId.set("io.spine.validation") + } + task.get().update() + + val updatedContent = buildFile.readText() + updatedContent shouldContain """id("io.spine.validation") version "2.0.0-TEST"""" + updatedContent shouldContain """id("other-plugin") version "0.1.0"""" + } + + @Test + fun `update 'kotlin' plugin version when 'kotlinVersion' is set`() { + // Overwrite with a file that uses kotlin("jvm") syntax + buildFile.writeText( + """ + plugins { + kotlin("jvm") version "1.9.10" + id("io.spine.validation") version "1.0.0" + } + """.trimIndent() + ) + + val project = ProjectBuilder.builder().build() + val task = project.tasks.register("updatePluginVersion", UpdatePluginVersion::class.java) { + directory.set(tempDir) + version.set("2.0.0-TEST") + pluginId.set("io.spine.validation") + kotlinVersion.set("2.2.21") + } + task.get().update() + + val updatedContent = buildFile.readText() + updatedContent shouldContain """kotlin("jvm") version "2.2.21"""" + updatedContent shouldContain """id("io.spine.validation") version "2.0.0-TEST"""" + } + + @Test + fun `handle multiple spaces between id and version`() { + buildFile.writeText(""" + plugins { + id("io.spine.validation") version "1.0.0" + } + """.trimIndent()) + + val project = ProjectBuilder.builder().build() + val task = project.tasks.register("updatePluginVersion", UpdatePluginVersion::class.java) { + directory.set(tempDir) + version.set("2.0.0-TEST") + pluginId.set("io.spine.validation") + } + + task.get().update() + + val updatedContent = buildFile.readText() + updatedContent shouldContain """id("io.spine.validation") version "2.0.0-TEST"""" + } +} diff --git a/buildSrc/src/test/kotlin/io/spine/gradle/publish/SpinePublishingTest.kt b/buildSrc/src/test/kotlin/io/spine/gradle/publish/SpinePublishingTest.kt new file mode 100644 index 000000000..37f58e040 --- /dev/null +++ b/buildSrc/src/test/kotlin/io/spine/gradle/publish/SpinePublishingTest.kt @@ -0,0 +1,261 @@ +/* + * Copyright 2026, 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.gradle.publish + +import io.kotest.assertions.throwables.shouldThrow +import io.kotest.matchers.collections.shouldContain +import io.kotest.matchers.collections.shouldHaveSize +import io.kotest.matchers.shouldBe +import io.kotest.matchers.string.shouldContain +import io.spine.gradle.repo.Repository +import org.gradle.api.Project +import org.gradle.kotlin.dsl.create +import org.gradle.testfixtures.ProjectBuilder +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.DisplayName +import org.junit.jupiter.api.Nested +import org.junit.jupiter.api.Test + +@DisplayName("`SpinePublishing` should") +class SpinePublishingTest { + + private lateinit var project: Project + private lateinit var extension: SpinePublishing + + @BeforeEach + fun setUp() { + project = ProjectBuilder.builder().build() + extension = project.spinePublishing { } + } + + @Nested + inner class `calculate 'artifactId'` { + + @Test + fun `with default prefix for non-tool projects`() { + val subproject = ProjectBuilder.builder() + .withParent(project) + .withName("base") + .build() + subproject.group = "io.spine" + + extension.artifactId(subproject) shouldBe "spine-base" + } + + @Test + fun `with custom prefix for non-tool projects`() { + extension.artifactPrefix = "custom-" + val subproject = ProjectBuilder.builder() + .withParent(project) + .withName("core") + .build() + subproject.group = "io.spine" + + extension.artifactId(subproject) shouldBe "custom-core" + } + + @Test + fun `with tool prefix for tool projects`() { + extension.toolArtifactPrefix = "tool-" + val toolProject = ProjectBuilder.builder() + .withParent(project) + .withName("model-compiler") + .build() + toolProject.group = "io.spine.tools" + + extension.artifactId(toolProject) shouldBe "tool-model-compiler" + } + + @Test + fun `without prefix for tool projects if 'NONE' is specified`() { + extension.toolArtifactPrefix = "NONE" + val toolProject = ProjectBuilder.builder() + .withParent(project) + .withName("proto-js") + .build() + toolProject.group = "io.spine.tools" + + extension.artifactId(toolProject) shouldBe "proto-js" + } + + @Test + fun `throwing IllegalStateException if tool prefix is empty for tool projects`() { + extension.toolArtifactPrefix = "" + val toolProject = ProjectBuilder.builder() + .withParent(project) + .withName("tool") + .build() + toolProject.group = "io.spine.tools" + + shouldThrow { + extension.artifactId(toolProject) + } + } + } + + @Nested + inner class `validate configuration` { + + @Test + fun `ensuring 'testJar' inclusions are published`() { + extension.modules = setOf("pub-module") + extension.testJar { + inclusions = setOf("non-pub-module") + } + + val exception = shouldThrow { + extension.configured() + } + exception.message!! shouldContain "non-pub-module" + } + + @Test + fun `ensuring 'customPublishing' is not misused with modules`() { + extension.modules = setOf("some-module") + extension.customPublishing = true + + val exception = shouldThrow { + extension.configured() + } + exception.message!! shouldContain "customPublishing" + } + + @Test + fun `ensuring modules are not duplicated in root and subproject`() { + val rootProject = project + val subproject = ProjectBuilder.builder() + .withParent(rootProject) + .withName("sub") + .build() + + // Root project already has the 'spinePublishing' extension created in 'setUp'. + // Let's use it instead of creating a second one with a different name. + extension.modules = setOf("sub") + + // Subproject's extension must be named 'SpinePublishing' + // to be found by SpinePublishing::class.java.simpleName + val extensionName = SpinePublishing::class.java.simpleName + val subExtension = subproject.extensions.create(extensionName, subproject) + + val exception = shouldThrow { + subExtension.configured() + } + exception.message!! shouldContain "already configured in a root project" + } + } + + @Nested + inner class `identify 'projectsToPublish'` { + + @Test + fun `as the project itself if no modules are specified`() { + val projects = extension.invokeProjectsToPublish() + projects shouldHaveSize 1 + projects shouldContain project + } + + @Test + fun `as the specified modules`() { + val sub1 = ProjectBuilder.builder().withParent(project).withName("sub1").build() + val sub2 = ProjectBuilder.builder().withParent(project).withName("sub2").build() + + extension.modules = setOf("sub1", "sub2") + + val projects = extension.invokeProjectsToPublish() + projects shouldHaveSize 2 + projects shouldContain sub1 + projects shouldContain sub2 + } + + @Test + fun `including modules with custom publishing`() { + val sub1 = ProjectBuilder.builder().withParent(project).withName("sub1").build() + val sub2 = ProjectBuilder.builder().withParent(project).withName("sub2").build() + + extension.modules = setOf("sub1") + extension.modulesWithCustomPublishing = setOf("sub2") + + val projects = extension.invokeProjectsToPublish() + projects shouldHaveSize 2 + projects shouldContain sub1 + projects shouldContain sub2 + } + } + + @Nested + inner class `resolve 'publishTo' repositories` { + + @Test + fun `from the extension itself if destinations are initialized`() { + val repo = Repository( + "test-repo", + "https://example.com/release", + "https://example.com/snapshot" + ) + extension.destinations = setOf(repo) + + val repos = project.invokePublishTo(extension) + repos shouldHaveSize 1 + repos shouldContain repo + } + + @Test + fun `from the parent project if not specified locally`() { + val repo = Repository( + "parent-repo", + "https://example.com/release", + "https://example.com/snapshot" + ) + // Root project has its extension named 'spinePublishing' from setUp. + extension.destinations = setOf(repo) + + val subproject = ProjectBuilder.builder().withParent(project).withName("sub").build() + // Subproject has no local 'spinePublishing' extension. + + val repos = subproject.invokePublishTo(extension) + repos shouldHaveSize 1 + repos shouldContain repo + } + } +} + +/** + * Accesses private/internal methods of [SpinePublishing] for testing purposes. + */ +private fun SpinePublishing.invokeProjectsToPublish(): Collection { + val method = SpinePublishing::class.java.getDeclaredMethod("projectsToPublish") + method.isAccessible = true + @Suppress("UNCHECKED_CAST") + return method.invoke(this) as Collection +} + +private fun Project.invokePublishTo(extension: SpinePublishing): Set { + val method = SpinePublishing::class.java.getDeclaredMethod("publishTo", Project::class.java) + method.isAccessible = true + @Suppress("UNCHECKED_CAST") + return method.invoke(extension, this) as Set +} diff --git a/config b/config index 383106988..3986ebdd1 160000 --- a/config +++ b/config @@ -1 +1 @@ -Subproject commit 3831069883fcf1099150265d00a40f3b687f96dd +Subproject commit 3986ebdd1ebece40e9433122ab9d46b4253fca03 diff --git a/dependencies.md b/dependencies.md index 62b11ea44..9f6fd8829 100644 --- a/dependencies.md +++ b/dependencies.md @@ -1,6 +1,6 @@ -# Dependencies of `io.spine.tools:spine-gradle-plugin:2.0.0-SNAPSHOT.234` +# Dependencies of `io.spine.tools:time-gradle-plugin:2.0.0-SNAPSHOT.235` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0. @@ -406,27 +406,27 @@ * **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-core. **Version** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.10. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) @@ -880,14 +880,14 @@ The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using +This report was generated on **Fri Apr 03 16:26:28 WEST 2026** 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). -# Dependencies of `io.spine:spine-time:2.0.0-SNAPSHOT.234` +# Dependencies of `io.spine.tools:time-testlib:2.0.0-SNAPSHOT.235` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -978,36 +978,11 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.20.0. - * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-guava. **Version** : 2.20.0. - * **Project URL:** [https://github.com/FasterXML/jackson-datatypes-collections](https://github.com/FasterXML/jackson-datatypes-collections) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-jdk8. **Version** : 2.20.0. - * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8](https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-jsr310. **Version** : 2.20.0. - * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310](https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - 1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.20.0. * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-parameter-names. **Version** : 2.20.0. - * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names](https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - 1. **Group** : com.fasterxml.woodstox. **Name** : woodstox-core. **Version** : 7.1.1. * **Project URL:** [https://github.com/FasterXML/woodstox](https://github.com/FasterXML/woodstox) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1017,10 +992,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8. - * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) - * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - 1. **Group** : com.github.kevinstern. **Name** : software-and-algorithms. **Version** : 1.0. * **Project URL:** [https://www.github.com/KevinStern/software-and-algorithms](https://www.github.com/KevinStern/software-and-algorithms) * **License:** [MIT License](http://www.opensource.org/licenses/mit-license.php) @@ -1029,14 +1000,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://github.com/oowekyala/nice-xml-messages](https://github.com/oowekyala/nice-xml-messages) * **License:** [MIT License](https://github.com/oowekyala/nice-xml-messages/tree/master/LICENSE) -1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4. - * **Project URL:** [http://source.android.com/](http://source.android.com/) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0) - -1. **Group** : com.google.api.grpc. **Name** : proto-google-common-protos. **Version** : 2.59.2. - * **Project URL:** [https://github.com/googleapis/sdk-platform-java](https://github.com/googleapis/sdk-platform-java) - * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - 1. **Group** : com.google.auto. **Name** : auto-common. **Version** : 1.2.2. * **Project URL:** [https://github.com/google/auto/tree/main/common](https://github.com/google/auto/tree/main/common) * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1057,26 +1020,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://github.com/google/gson](https://github.com/google/gson) * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6. - * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-aa-embeddable. **Version** : 2.3.6. - * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-api. **Version** : 2.3.6. - * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-common-deps. **Version** : 2.3.6. - * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-gradle-plugin. **Version** : 2.3.6. - * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) - * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - 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) @@ -1112,10 +1055,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using 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.gradle. **Name** : osdetector-gradle-plugin. **Version** : 1.7.3. - * **Project URL:** [https://github.com/google/osdetector-gradle-plugin](https://github.com/google/osdetector-gradle-plugin) - * **License:** [Apache License 2.0](http://opensource.org/licenses/Apache-2.0) - 1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3. * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1134,10 +1073,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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) -1. **Group** : com.google.protobuf. **Name** : protobuf-gradle-plugin. **Version** : 0.9.6. - * **Project URL:** [https://github.com/google/protobuf-gradle-plugin](https://github.com/google/protobuf-gradle-plugin) - * **License:** [BSD 3-Clause](http://opensource.org/licenses/BSD-3-Clause) - 1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.34.1. * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) @@ -1150,11 +1085,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) -1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 4.34.1. - * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) - * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) - * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - 1. **Group** : com.google.truth. **Name** : truth. **Version** : 1.4.4. * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1167,42 +1097,14 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using 1. **Group** : com.google.truth.extensions. **Name** : truth-proto-extension. **Version** : 1.4.4. * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format. **Version** : 2.75.0. - * **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format) - * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) - -1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format-spi. **Version** : 2.75.0. - * **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format) - * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) - 1. **Group** : com.puppycrawl.tools. **Name** : checkstyle. **Version** : 10.12.1. * **Project URL:** [https://checkstyle.org/](https://checkstyle.org/) * **License:** [LGPL-2.1+](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) -1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 2.1.2. - * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile) - * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0) - 1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 4.0.10. * **Project URL:** [https://github.com/korlibs/korge-next](https://github.com/korlibs/korge-next) * **License:** [MIT](https://raw.githubusercontent.com/korlibs/korge-next/master/korge/LICENSE.txt) -1. **Group** : com.squareup. **Name** : javapoet. **Version** : 1.13.0. - * **Project URL:** [http://github.com/square/javapoet/](http://github.com/square/javapoet/) - * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.squareup. **Name** : kotlinpoet. **Version** : 2.2.0. - * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.squareup. **Name** : kotlinpoet-jvm. **Version** : 2.2.0. - * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : com.squareup. **Name** : kotlinpoet-ksp. **Version** : 2.2.0. - * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - 1. **Group** : commons-beanutils. **Name** : commons-beanutils. **Version** : 1.9.4. * **Project URL:** [https://commons.apache.org/proper/commons-beanutils/](https://commons.apache.org/proper/commons-beanutils/) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1223,10 +1125,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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.zacsweers.autoservice. **Name** : auto-service-ksp. **Version** : 1.2.0. - * **Project URL:** [https://github.com/ZacSweers/auto-service-ksp](https://github.com/ZacSweers/auto-service-ksp) - * **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) @@ -1342,74 +1240,30 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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.grpc. **Name** : grpc-api. **Version** : 1.76.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-bom. **Version** : 1.76.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-context. **Version** : 1.76.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-core. **Version** : 1.76.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-inprocess. **Version** : 1.76.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-kotlin-stub. **Version** : 1.4.1. - * **Project URL:** [https://github.com/grpc/grpc-kotlin](https://github.com/grpc/grpc-kotlin) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.76.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.76.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.grpc. **Name** : grpc-stub. **Version** : 1.76.0. - * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.10. * **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.perfmark. **Name** : perfmark-api. **Version** : 0.27.0. - * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) - * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) - -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) - 1. **Group** : javax.inject. **Name** : javax.inject. **Version** : 1. * **Project URL:** [http://code.google.com/p/atinject/](http://code.google.com/p/atinject/) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1418,10 +1272,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [http://junit.org](http://junit.org) * **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html) -1. **Group** : kr.motd.maven. **Name** : os-maven-plugin. **Version** : 1.7.1. - * **Project URL:** [https://github.com/trustin/os-maven-plugin/](https://github.com/trustin/os-maven-plugin/) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) - 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/) @@ -1473,10 +1323,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/) * **License:** [The MIT License](http://opensource.org/licenses/MIT) -1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.21. - * **License:** [MIT license](http://www.opensource.org/licenses/mit-license.php) - * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - 1. **Group** : org.codehaus.woodstox. **Name** : stax2-api. **Version** : 4.2.2. * **Project URL:** [http://github.com/FasterXML/stax2-api](http://github.com/FasterXML/stax2-api) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1486,10 +1332,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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.functionaljava. **Name** : functionaljava. **Version** : 4.8. - * **Project URL:** [http://functionaljava.org/](http://functionaljava.org/) - * **License:** [The BSD3 License](https://github.com/functionaljava/functionaljava/blob/master/etc/LICENCE) - 1. **Group** : org.hamcrest. **Name** : hamcrest. **Version** : 3.0. * **Project URL:** [http://hamcrest.org/JavaHamcrest/](http://hamcrest.org/JavaHamcrest/) * **License:** [BSD-3-Clause](https://raw.githubusercontent.com/hamcrest/JavaHamcrest/master/LICENSE) @@ -1513,14 +1355,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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.jboss.forge.roaster. **Name** : roaster-api. **Version** : 2.29.0.Final. - * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) - * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) - -1. **Group** : org.jboss.forge.roaster. **Name** : roaster-jdt. **Version** : 2.29.0.Final. - * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) - * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) - 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) @@ -1569,14 +1403,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.8.0-intellij-14. - * **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.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0-intellij-14. - * **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.kotlin. **Name** : abi-tools. **Version** : 2.3.20. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1861,21 +1687,17 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://github.com/xmlresolver/xmlresolver](https://github.com/xmlresolver/xmlresolver) * **License:** [Apache License version 2.0](https://www.apache.org/licenses/LICENSE-2.0) -1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.4. - * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) - * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) - The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using +This report was generated on **Fri Apr 03 16:26:28 WEST 2026** 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). -# Dependencies of `io.spine:spine-time-java:2.0.0-SNAPSHOT.234` +# Dependencies of `io.spine:spine-time:2.0.0-SNAPSHOT.235` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -1966,11 +1788,36 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.20.0. + * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-guava. **Version** : 2.20.0. + * **Project URL:** [https://github.com/FasterXML/jackson-datatypes-collections](https://github.com/FasterXML/jackson-datatypes-collections) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-jdk8. **Version** : 2.20.0. + * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8](https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-jsr310. **Version** : 2.20.0. + * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310](https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.20.0. * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-parameter-names. **Version** : 2.20.0. + * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names](https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.fasterxml.woodstox. **Name** : woodstox-core. **Version** : 7.1.1. * **Project URL:** [https://github.com/FasterXML/woodstox](https://github.com/FasterXML/woodstox) * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -1980,6 +1827,10 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8. + * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine) + * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.github.kevinstern. **Name** : software-and-algorithms. **Version** : 1.0. * **Project URL:** [https://www.github.com/KevinStern/software-and-algorithms](https://www.github.com/KevinStern/software-and-algorithms) * **License:** [MIT License](http://www.opensource.org/licenses/mit-license.php) @@ -1988,6 +1839,14 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://github.com/oowekyala/nice-xml-messages](https://github.com/oowekyala/nice-xml-messages) * **License:** [MIT License](https://github.com/oowekyala/nice-xml-messages/tree/master/LICENSE) +1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4. + * **Project URL:** [http://source.android.com/](http://source.android.com/) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0) + +1. **Group** : com.google.api.grpc. **Name** : proto-google-common-protos. **Version** : 2.59.2. + * **Project URL:** [https://github.com/googleapis/sdk-platform-java](https://github.com/googleapis/sdk-platform-java) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.google.auto. **Name** : auto-common. **Version** : 1.2.2. * **Project URL:** [https://github.com/google/auto/tree/main/common](https://github.com/google/auto/tree/main/common) * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2008,6 +1867,26 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://github.com/google/gson](https://github.com/google/gson) * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6. + * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-aa-embeddable. **Version** : 2.3.6. + * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-api. **Version** : 2.3.6. + * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-common-deps. **Version** : 2.3.6. + * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-gradle-plugin. **Version** : 2.3.6. + * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp) + * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 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) @@ -2043,6 +1922,10 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using 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.gradle. **Name** : osdetector-gradle-plugin. **Version** : 1.7.3. + * **Project URL:** [https://github.com/google/osdetector-gradle-plugin](https://github.com/google/osdetector-gradle-plugin) + * **License:** [Apache License 2.0](http://opensource.org/licenses/Apache-2.0) + 1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3. * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/) * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2061,6 +1944,10 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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) +1. **Group** : com.google.protobuf. **Name** : protobuf-gradle-plugin. **Version** : 0.9.6. + * **Project URL:** [https://github.com/google/protobuf-gradle-plugin](https://github.com/google/protobuf-gradle-plugin) + * **License:** [BSD 3-Clause](http://opensource.org/licenses/BSD-3-Clause) + 1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.34.1. * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) @@ -2073,6 +1960,11 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) +1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 4.34.1. + * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/) + * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause) + * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : com.google.truth. **Name** : truth. **Version** : 1.4.4. * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2085,14 +1977,42 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using 1. **Group** : com.google.truth.extensions. **Name** : truth-proto-extension. **Version** : 1.4.4. * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format. **Version** : 2.75.0. + * **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format) + * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) + +1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format-spi. **Version** : 2.75.0. + * **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format) + * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) + 1. **Group** : com.puppycrawl.tools. **Name** : checkstyle. **Version** : 10.12.1. * **Project URL:** [https://checkstyle.org/](https://checkstyle.org/) * **License:** [LGPL-2.1+](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) +1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 2.1.2. + * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile) + * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0) + 1. **Group** : com.soywiz.korlibs.korte. **Name** : korte-jvm. **Version** : 4.0.10. * **Project URL:** [https://github.com/korlibs/korge-next](https://github.com/korlibs/korge-next) * **License:** [MIT](https://raw.githubusercontent.com/korlibs/korge-next/master/korge/LICENSE.txt) +1. **Group** : com.squareup. **Name** : javapoet. **Version** : 1.13.0. + * **Project URL:** [http://github.com/square/javapoet/](http://github.com/square/javapoet/) + * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.squareup. **Name** : kotlinpoet. **Version** : 2.2.0. + * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.squareup. **Name** : kotlinpoet-jvm. **Version** : 2.2.0. + * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : com.squareup. **Name** : kotlinpoet-ksp. **Version** : 2.2.0. + * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : commons-beanutils. **Name** : commons-beanutils. **Version** : 1.9.4. * **Project URL:** [https://commons.apache.org/proper/commons-beanutils/](https://commons.apache.org/proper/commons-beanutils/) * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2113,6 +2033,10 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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.zacsweers.autoservice. **Name** : auto-service-ksp. **Version** : 1.2.0. + * **Project URL:** [https://github.com/ZacSweers/auto-service-ksp](https://github.com/ZacSweers/auto-service-ksp) + * **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) @@ -2228,30 +2152,74 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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-core. **Version** : 6.0.4. +1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.76.0. + * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : io.grpc. **Name** : grpc-bom. **Version** : 1.76.0. + * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : io.grpc. **Name** : grpc-context. **Version** : 1.76.0. + * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : io.grpc. **Name** : grpc-core. **Version** : 1.76.0. + * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : io.grpc. **Name** : grpc-inprocess. **Version** : 1.76.0. + * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : io.grpc. **Name** : grpc-kotlin-stub. **Version** : 1.4.1. + * **Project URL:** [https://github.com/grpc/grpc-kotlin](https://github.com/grpc/grpc-kotlin) + * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.76.0. + * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : io.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.76.0. + * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : io.grpc. **Name** : grpc-stub. **Version** : 1.76.0. + * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java) + * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) + +1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.10. * **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.perfmark. **Name** : perfmark-api. **Version** : 0.27.0. + * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark) + * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0) + +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) + 1. **Group** : javax.inject. **Name** : javax.inject. **Version** : 1. * **Project URL:** [http://code.google.com/p/atinject/](http://code.google.com/p/atinject/) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2260,6 +2228,10 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [http://junit.org](http://junit.org) * **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html) +1. **Group** : kr.motd.maven. **Name** : os-maven-plugin. **Version** : 1.7.1. + * **Project URL:** [https://github.com/trustin/os-maven-plugin/](https://github.com/trustin/os-maven-plugin/) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) + 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/) @@ -2311,6 +2283,10 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/) * **License:** [The MIT License](http://opensource.org/licenses/MIT) +1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.21. + * **License:** [MIT license](http://www.opensource.org/licenses/mit-license.php) + * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 1. **Group** : org.codehaus.woodstox. **Name** : stax2-api. **Version** : 4.2.2. * **Project URL:** [http://github.com/FasterXML/stax2-api](http://github.com/FasterXML/stax2-api) * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2320,6 +2296,10 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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.functionaljava. **Name** : functionaljava. **Version** : 4.8. + * **Project URL:** [http://functionaljava.org/](http://functionaljava.org/) + * **License:** [The BSD3 License](https://github.com/functionaljava/functionaljava/blob/master/etc/LICENCE) + 1. **Group** : org.hamcrest. **Name** : hamcrest. **Version** : 3.0. * **Project URL:** [http://hamcrest.org/JavaHamcrest/](http://hamcrest.org/JavaHamcrest/) * **License:** [BSD-3-Clause](https://raw.githubusercontent.com/hamcrest/JavaHamcrest/master/LICENSE) @@ -2343,6 +2323,14 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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.jboss.forge.roaster. **Name** : roaster-api. **Version** : 2.29.0.Final. + * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) + * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) + +1. **Group** : org.jboss.forge.roaster. **Name** : roaster-jdt. **Version** : 2.29.0.Final. + * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html) + * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt) + 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) @@ -2391,6 +2379,14 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.8.0-intellij-14. + * **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.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0-intellij-14. + * **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.kotlin. **Name** : abi-tools. **Version** : 2.3.20. * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/) * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) @@ -2675,17 +2671,21 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://github.com/xmlresolver/xmlresolver](https://github.com/xmlresolver/xmlresolver) * **License:** [Apache License version 2.0](https://www.apache.org/licenses/LICENSE-2.0) +1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.4. + * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) + * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) + The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using +This report was generated on **Fri Apr 03 16:26:28 WEST 2026** 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). -# Dependencies of `io.spine:spine-time-kotlin:2.0.0-SNAPSHOT.234` +# Dependencies of `io.spine:spine-time-java:2.0.0-SNAPSHOT.235` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -2747,14 +2747,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) - * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - -1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime-jvm. **Version** : 0.7.1. - * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) - * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) - 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) @@ -3046,27 +3038,27 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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-core. **Version** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.10. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) @@ -3496,14 +3488,14 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using +This report was generated on **Fri Apr 03 16:26:28 WEST 2026** 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). -# Dependencies of `io.spine.tools:spine-time-testlib:2.0.0-SNAPSHOT.234` +# Dependencies of `io.spine:spine-time-kotlin:2.0.0-SNAPSHOT.235` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -3565,6 +3557,14 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + +1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime-jvm. **Version** : 0.7.1. + * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) + * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt) + 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) @@ -3856,27 +3856,27 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using * **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-core. **Version** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.10. * **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** : 6.0.4. +1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.10. * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest) * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0) @@ -4306,6 +4306,6 @@ This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Sun Mar 29 18:08:33 CEST 2026** using +This report was generated on **Fri Apr 03 16:26:28 WEST 2026** 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/gradle-plugin/build.gradle.kts b/gradle-plugin/build.gradle.kts index f742aee51..281300828 100644 --- a/gradle-plugin/build.gradle.kts +++ b/gradle-plugin/build.gradle.kts @@ -91,6 +91,13 @@ afterEvaluate { } } } + // The `io.spine.artifact-meta` attempts to add the dependency between + // `sourcesJar` and `writeArtifactMeta` tasks automatically. + // However, the `sourcesJar` task is added in the `afterEvaluate` block + // which hanbdles the custom publishing above. + // The above `publishing` block is executed after `ArtifactMetaPlugin` attempts to add + // the dependency in the `afterEvaluate` block the plugin adds itself. + // Therefore, we have to arrange the dependency manually below. val sourcesJar by tasks.getting(Jar::class) val writeArtifactMeta by tasks.getting sourcesJar.dependsOn(writeArtifactMeta) diff --git a/pom.xml b/pom.xml index e99ad3657..4d0e62532 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ all modules and does not describe the project structure per-subproject. --> io.spine spine-time -2.0.0-SNAPSHOT.234 +2.0.0-SNAPSHOT.235 2015 @@ -62,13 +62,13 @@ all modules and does not describe the project structure per-subproject. io.spine.tools gradle-plugin-api - 2.0.0-SNAPSHOT.375 + 2.0.0-SNAPSHOT.376 compile io.spine.tools jvm-tools - 2.0.0-SNAPSHOT.375 + 2.0.0-SNAPSHOT.376 compile @@ -110,7 +110,7 @@ all modules and does not describe the project structure per-subproject. io.kotest kotest-assertions-core - 6.0.4 + 6.1.10 test @@ -215,12 +215,12 @@ all modules and does not describe the project structure per-subproject. io.spine.tools core-jvm-gradle-plugins - 2.0.0-SNAPSHOT.055 + 2.0.0-SNAPSHOT.058 io.spine.tools core-jvm-routing - 2.0.0-SNAPSHOT.055 + 2.0.0-SNAPSHOT.058 io.spine.tools diff --git a/settings.gradle.kts b/settings.gradle.kts index 61d6377cc..e3ebd4081 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -36,8 +36,8 @@ rootProject.name = "spine-time" include( "time", - "time-testlib", "time-java", "time-kotlin", + "testlib", "gradle-plugin", ) diff --git a/time-testlib/build.gradle.kts b/testlib/build.gradle.kts similarity index 100% rename from time-testlib/build.gradle.kts rename to testlib/build.gradle.kts diff --git a/time-testlib/src/main/java/io/spine/testing/time/BackToTheFuture.java b/testlib/src/main/java/io/spine/testing/time/BackToTheFuture.java similarity index 100% rename from time-testlib/src/main/java/io/spine/testing/time/BackToTheFuture.java rename to testlib/src/main/java/io/spine/testing/time/BackToTheFuture.java diff --git a/time-testlib/src/main/java/io/spine/testing/time/FrozenMadHatterParty.java b/testlib/src/main/java/io/spine/testing/time/FrozenMadHatterParty.java similarity index 100% rename from time-testlib/src/main/java/io/spine/testing/time/FrozenMadHatterParty.java rename to testlib/src/main/java/io/spine/testing/time/FrozenMadHatterParty.java diff --git a/time-testlib/src/main/java/io/spine/testing/time/Future.java b/testlib/src/main/java/io/spine/testing/time/Future.java similarity index 100% rename from time-testlib/src/main/java/io/spine/testing/time/Future.java rename to testlib/src/main/java/io/spine/testing/time/Future.java diff --git a/time-testlib/src/main/java/io/spine/testing/time/Past.java b/testlib/src/main/java/io/spine/testing/time/Past.java similarity index 100% rename from time-testlib/src/main/java/io/spine/testing/time/Past.java rename to testlib/src/main/java/io/spine/testing/time/Past.java diff --git a/time-testlib/src/main/java/io/spine/testing/time/TimeTests.java b/testlib/src/main/java/io/spine/testing/time/TimeTests.java similarity index 100% rename from time-testlib/src/main/java/io/spine/testing/time/TimeTests.java rename to testlib/src/main/java/io/spine/testing/time/TimeTests.java diff --git a/time-testlib/src/main/java/io/spine/testing/time/package-info.java b/testlib/src/main/java/io/spine/testing/time/package-info.java similarity index 100% rename from time-testlib/src/main/java/io/spine/testing/time/package-info.java rename to testlib/src/main/java/io/spine/testing/time/package-info.java diff --git a/time-testlib/src/test/java/io/spine/testing/time/BackToTheFutureTest.java b/testlib/src/test/java/io/spine/testing/time/BackToTheFutureTest.java similarity index 100% rename from time-testlib/src/test/java/io/spine/testing/time/BackToTheFutureTest.java rename to testlib/src/test/java/io/spine/testing/time/BackToTheFutureTest.java diff --git a/time-testlib/src/test/java/io/spine/testing/time/TimeTestsTests.java b/testlib/src/test/java/io/spine/testing/time/TimeTestsTests.java similarity index 100% rename from time-testlib/src/test/java/io/spine/testing/time/TimeTestsTests.java rename to testlib/src/test/java/io/spine/testing/time/TimeTestsTests.java diff --git a/time/build.gradle.kts b/time/build.gradle.kts index 6d41c79c2..ec2b2add5 100644 --- a/time/build.gradle.kts +++ b/time/build.gradle.kts @@ -45,7 +45,7 @@ dependencies { implementation(Validation.runtime) testImplementation(TestLib.lib) - testImplementation(project(":time-testlib")) + testImplementation(project(":testlib")) } configurations { diff --git a/version.gradle.kts b/version.gradle.kts index 90699254b..984db38ee 100644 --- a/version.gradle.kts +++ b/version.gradle.kts @@ -26,7 +26,5 @@ /** * The version of this library for publishing. - * - * For dependencies on Spine modules please see [io.spine.dependency.local.Spine]. */ -val versionToPublish by extra("2.0.0-SNAPSHOT.234") +val versionToPublish by extra("2.0.0-SNAPSHOT.235")