From 4f647ebd3507d9cca39504f9609648d8eeb896a1 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Fri, 20 Feb 2026 20:20:59 +0000 Subject: [PATCH 1/9] Bump version -> `2.0.0-SNAPSHOT.372` --- version.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.gradle.kts b/version.gradle.kts index 4724f793..dc1ad09f 100644 --- a/version.gradle.kts +++ b/version.gradle.kts @@ -24,4 +24,4 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -val versionToPublish: String by extra("2.0.0-SNAPSHOT.371") +val versionToPublish: String by extra("2.0.0-SNAPSHOT.372") From fa83898c45041aac98d7fb7d189fb4917167d3f9 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Fri, 20 Feb 2026 20:21:09 +0000 Subject: [PATCH 2/9] Update dependency reports --- dependencies.md | 56 ++++++++++++++++++++++++------------------------- pom.xml | 2 +- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/dependencies.md b/dependencies.md index c305adb6..e72e3520 100644 --- a/dependencies.md +++ b/dependencies.md @@ -1,6 +1,6 @@ -# Dependencies of `io.spine.tools:classic-codegen:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:classic-codegen:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -888,14 +888,14 @@ The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:33 WET 2025** using +This report was generated on **Fri Feb 20 20:19:36 WET 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:gradle-plugin-api:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:gradle-plugin-api:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0. @@ -1838,14 +1838,14 @@ This report was generated on **Tue Dec 02 18:51:33 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:33 WET 2025** using +This report was generated on **Fri Feb 20 20:19:36 WET 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:gradle-plugin-api-test-fixtures:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:gradle-plugin-api-test-fixtures:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0. @@ -2321,14 +2321,14 @@ This report was generated on **Tue Dec 02 18:51:33 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:33 WET 2025** using +This report was generated on **Fri Feb 20 20:19:35 WET 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:gradle-root-plugin:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:gradle-root-plugin:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -3195,14 +3195,14 @@ This report was generated on **Tue Dec 02 18:51:33 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:33 WET 2025** using +This report was generated on **Fri Feb 20 20:19:36 WET 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:intellij-platform:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:intellij-platform:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : be.cyberelf.nanoxml. **Name** : nanoxml. **Version** : 2.2.3. @@ -4316,14 +4316,14 @@ This report was generated on **Tue Dec 02 18:51:33 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:33 WET 2025** using +This report was generated on **Fri Feb 20 20:19:36 WET 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:intellij-platform-java:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:intellij-platform-java:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : be.cyberelf.nanoxml. **Name** : nanoxml. **Version** : 2.2.3. @@ -6135,14 +6135,14 @@ This report was generated on **Tue Dec 02 18:51:33 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:34 WET 2025** using +This report was generated on **Fri Feb 20 20:19:37 WET 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:jvm-tool-plugins:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:jvm-tool-plugins:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -7029,14 +7029,14 @@ This report was generated on **Tue Dec 02 18:51:34 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:33 WET 2025** using +This report was generated on **Fri Feb 20 20:19:36 WET 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:jvm-tools:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:jvm-tools:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 26.0.2. @@ -7836,14 +7836,14 @@ This report was generated on **Tue Dec 02 18:51:33 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:33 WET 2025** using +This report was generated on **Fri Feb 20 20:19:36 WET 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:plugin-base:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:plugin-base:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -8738,14 +8738,14 @@ This report was generated on **Tue Dec 02 18:51:33 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:33 WET 2025** using +This report was generated on **Fri Feb 20 20:19:36 WET 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:plugin-testlib:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:plugin-testlib:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : com.google.auto.value. **Name** : auto-value-annotations. **Version** : 1.10.2. @@ -9744,14 +9744,14 @@ This report was generated on **Tue Dec 02 18:51:33 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:33 WET 2025** using +This report was generated on **Fri Feb 20 20:19:36 WET 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:protobuf-setup-plugins:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:protobuf-setup-plugins:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -10658,14 +10658,14 @@ This report was generated on **Tue Dec 02 18:51:33 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:33 WET 2025** using +This report was generated on **Fri Feb 20 20:19:36 WET 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:psi:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:psi:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : be.cyberelf.nanoxml. **Name** : nanoxml. **Version** : 2.2.3. @@ -11822,14 +11822,14 @@ This report was generated on **Tue Dec 02 18:51:33 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:33 WET 2025** using +This report was generated on **Fri Feb 20 20:19:36 WET 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:psi-java:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:psi-java:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : be.cyberelf.nanoxml. **Name** : nanoxml. **Version** : 2.2.3. @@ -13704,14 +13704,14 @@ This report was generated on **Tue Dec 02 18:51:33 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:34 WET 2025** using +This report was generated on **Fri Feb 20 20:19:37 WET 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:tool-base:2.0.0-SNAPSHOT.371` +# Dependencies of `io.spine.tools:tool-base:2.0.0-SNAPSHOT.372` ## Runtime 1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2. @@ -14631,6 +14631,6 @@ This report was generated on **Tue Dec 02 18:51:34 WET 2025** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Tue Dec 02 18:51:33 WET 2025** using +This report was generated on **Fri Feb 20 20:19:36 WET 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/pom.xml b/pom.xml index 08e4b3fa..e26d4ee4 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ all modules and does not describe the project structure per-subproject. --> io.spine.tools tool-base -2.0.0-SNAPSHOT.371 +2.0.0-SNAPSHOT.372 2015 From 7be904acd428e7e446921b9fb47c0b62daaa8fcb Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Fri, 20 Feb 2026 20:21:24 +0000 Subject: [PATCH 3/9] Apply standard reporitories when the `RootPlugin` is applied --- .../main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gradle-root-plugin/src/main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt b/gradle-root-plugin/src/main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt index f5fb7c6b..9937b5c4 100644 --- a/gradle-root-plugin/src/main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt +++ b/gradle-root-plugin/src/main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt @@ -27,6 +27,7 @@ package io.spine.tools.gradle.root import io.spine.tools.gradle.DslSpec +import io.spine.tools.gradle.applyStandard import io.spine.tools.gradle.project.ProjectPlugin import io.spine.tools.gradle.root.RootExtension.Companion.NAME import org.gradle.api.Project @@ -58,11 +59,14 @@ public class RootPlugin : } /** - * Applies the plugin to the given project by forcing creation of the [extension]. + * Applies the plugin to the given [project] by forcing creation of the [extension]. + * + * Also applies repositories [standard for Spine SDK][applyStandard]. */ override fun apply(project: Project) { super.apply(project) createExtension() + project.repositories.applyStandard() check(extension != null) { "The extension of the `${this::class.simpleName}` has not been created." } From da2804fa39f96c1d4510c6500fe9b4e3ede7ffd3 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Fri, 20 Feb 2026 20:21:35 +0000 Subject: [PATCH 4/9] Update `config` ref. --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index 16d76925..17e0dbb8 160000 --- a/config +++ b/config @@ -1 +1 @@ -Subproject commit 16d76925f19d3e883389169039fb1a8744a6aa82 +Subproject commit 17e0dbb819839d9b65b711efb085b38bcbb5eae9 From 92e4b89d62ffde5fa9e33b3367804546f3e92d54 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Fri, 20 Feb 2026 20:25:39 +0000 Subject: [PATCH 5/9] Test applied repositories --- .../spine/tools/gradle/root/RootPluginSpec.kt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gradle-root-plugin/src/test/kotlin/io/spine/tools/gradle/root/RootPluginSpec.kt b/gradle-root-plugin/src/test/kotlin/io/spine/tools/gradle/root/RootPluginSpec.kt index 726f8c2a..006d6850 100644 --- a/gradle-root-plugin/src/test/kotlin/io/spine/tools/gradle/root/RootPluginSpec.kt +++ b/gradle-root-plugin/src/test/kotlin/io/spine/tools/gradle/root/RootPluginSpec.kt @@ -26,6 +26,7 @@ package io.spine.tools.gradle.root +import io.kotest.matchers.collections.shouldContain import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe import io.kotest.matchers.string.shouldContain @@ -36,6 +37,7 @@ import io.spine.tools.gradle.testing.runGradleBuild import io.spine.tools.gradle.testing.under import java.io.File import org.gradle.api.Project +import org.gradle.api.artifacts.repositories.MavenArtifactRepository import org.gradle.testfixtures.ProjectBuilder import org.gradle.testkit.runner.TaskOutcome import org.junit.jupiter.api.BeforeEach @@ -76,6 +78,21 @@ internal class RootPluginSpec { } } + @Test + fun `apply standard repositories`() { + project.pluginManager.apply(pluginClass) + + val repositories = project.repositories.map { it.name } + repositories shouldContain "MavenLocal" + repositories shouldContain "MavenRepo" + + val mavenRepositories = project.repositories.withType(MavenArtifactRepository::class.java) + val urls = mavenRepositories.map { it.url.toString() } + + urls shouldContain "https://europe-maven.pkg.dev/spine-event-engine/releases" + urls shouldContain "https://europe-maven.pkg.dev/spine-event-engine/snapshots" + } + @Test fun `be applied via its ID`(@TempDir projectDir: File) { Gradle.buildFile.under(projectDir).writeText( From 689c77ef1876006769325cf69ebe74a9f8644d4e Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Fri, 20 Feb 2026 20:26:40 +0000 Subject: [PATCH 6/9] Update build time --- dependencies.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/dependencies.md b/dependencies.md index e72e3520..e182bcaa 100644 --- a/dependencies.md +++ b/dependencies.md @@ -888,7 +888,7 @@ The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:36 WET 2026** using +This report was generated on **Fri Feb 20 20:25:48 WET 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). @@ -1838,7 +1838,7 @@ This report was generated on **Fri Feb 20 20:19:36 WET 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:36 WET 2026** using +This report was generated on **Fri Feb 20 20:25:48 WET 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). @@ -2321,7 +2321,7 @@ This report was generated on **Fri Feb 20 20:19:36 WET 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:35 WET 2026** using +This report was generated on **Fri Feb 20 20:25:48 WET 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). @@ -3195,7 +3195,7 @@ This report was generated on **Fri Feb 20 20:19:35 WET 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:36 WET 2026** using +This report was generated on **Fri Feb 20 20:25:48 WET 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). @@ -4316,7 +4316,7 @@ This report was generated on **Fri Feb 20 20:19:36 WET 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:36 WET 2026** using +This report was generated on **Fri Feb 20 20:25:48 WET 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). @@ -6135,7 +6135,7 @@ This report was generated on **Fri Feb 20 20:19:36 WET 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:37 WET 2026** using +This report was generated on **Fri Feb 20 20:25:49 WET 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). @@ -7029,7 +7029,7 @@ This report was generated on **Fri Feb 20 20:19:37 WET 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:36 WET 2026** using +This report was generated on **Fri Feb 20 20:25:48 WET 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). @@ -7836,7 +7836,7 @@ This report was generated on **Fri Feb 20 20:19:36 WET 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:36 WET 2026** using +This report was generated on **Fri Feb 20 20:25:48 WET 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). @@ -8738,7 +8738,7 @@ This report was generated on **Fri Feb 20 20:19:36 WET 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:36 WET 2026** using +This report was generated on **Fri Feb 20 20:25:48 WET 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). @@ -9744,7 +9744,7 @@ This report was generated on **Fri Feb 20 20:19:36 WET 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:36 WET 2026** using +This report was generated on **Fri Feb 20 20:25:48 WET 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). @@ -10658,7 +10658,7 @@ This report was generated on **Fri Feb 20 20:19:36 WET 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:36 WET 2026** using +This report was generated on **Fri Feb 20 20:25:49 WET 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). @@ -11822,7 +11822,7 @@ This report was generated on **Fri Feb 20 20:19:36 WET 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:36 WET 2026** using +This report was generated on **Fri Feb 20 20:25:48 WET 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). @@ -13704,7 +13704,7 @@ This report was generated on **Fri Feb 20 20:19:36 WET 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:37 WET 2026** using +This report was generated on **Fri Feb 20 20:25:49 WET 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). @@ -14631,6 +14631,6 @@ This report was generated on **Fri Feb 20 20:19:37 WET 2026** using The dependencies distributed under several licenses, are used according their commercial-use-friendly license. -This report was generated on **Fri Feb 20 20:19:36 WET 2026** using +This report was generated on **Fri Feb 20 20:25:48 WET 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 From bcac5a03d3f5f8cf8225a58774e803f026d5c891 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Fri, 20 Feb 2026 20:32:26 +0000 Subject: [PATCH 7/9] Improve plugin docs --- .../src/main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gradle-root-plugin/src/main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt b/gradle-root-plugin/src/main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt index 9937b5c4..d970327b 100644 --- a/gradle-root-plugin/src/main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt +++ b/gradle-root-plugin/src/main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt @@ -39,6 +39,8 @@ import org.gradle.api.plugins.ExtensionAware * * The extension is used by Gradle plugins of libraries that extend * the [root extension][RootExtension] with custom configuration DSL. + * + * The plugin also applies repositories [standard for Spine SDK][applyStandard] to the project. */ public class RootPlugin : ProjectPlugin(DslSpec(NAME, RootExtension::class)) { From aca73d2cb27072f84ee07668a24ea27ada9d051e Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Fri, 20 Feb 2026 21:14:44 +0000 Subject: [PATCH 8/9] Update dependency reports --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e26d4ee4..9f6217bc 100644 --- a/pom.xml +++ b/pom.xml @@ -416,7 +416,7 @@ all modules and does not describe the project structure per-subproject. org.jetbrains.kotlin kotlin-build-tools-impl - null + 2.2.21 org.jetbrains.kotlin From 83b62d22ac5df846ee2913341a880de0ec997d60 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Fri, 20 Feb 2026 21:16:56 +0000 Subject: [PATCH 9/9] Apply repositories only if `PREFER_PROJECT` --- .../io/spine/tools/gradle/root/RootPlugin.kt | 42 +++++++++-- .../spine/tools/gradle/root/RootPluginSpec.kt | 72 +++++++++++++++++++ 2 files changed, 109 insertions(+), 5 deletions(-) diff --git a/gradle-root-plugin/src/main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt b/gradle-root-plugin/src/main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt index d970327b..367a084a 100644 --- a/gradle-root-plugin/src/main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt +++ b/gradle-root-plugin/src/main/kotlin/io/spine/tools/gradle/root/RootPlugin.kt @@ -24,6 +24,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +@file:Suppress("UnstableApiUsage") // We need to use unstable settings API. + package io.spine.tools.gradle.root import io.spine.tools.gradle.DslSpec @@ -32,6 +34,9 @@ import io.spine.tools.gradle.project.ProjectPlugin import io.spine.tools.gradle.root.RootExtension.Companion.NAME import org.gradle.api.Project import org.gradle.api.file.Directory +import org.gradle.api.initialization.resolve.RepositoriesMode +import org.gradle.api.internal.GradleInternal +import org.gradle.api.internal.SettingsInternal import org.gradle.api.plugins.ExtensionAware /** @@ -40,7 +45,9 @@ import org.gradle.api.plugins.ExtensionAware * The extension is used by Gradle plugins of libraries that extend * the [root extension][RootExtension] with custom configuration DSL. * - * The plugin also applies repositories [standard for Spine SDK][applyStandard] to the project. + * The plugin also applies repositories [standard for Spine SDK][applyStandard] + * to the project IFF `dependencyResolutionManagement.repositoriesMode` property set + * in `settings.gradle.kts` to [RepositoriesMode.PREFER_PROJECT] or assumed such. */ public class RootPlugin : ProjectPlugin(DslSpec(NAME, RootExtension::class)) { @@ -61,14 +68,12 @@ public class RootPlugin : } /** - * Applies the plugin to the given [project] by forcing creation of the [extension]. - * - * Also applies repositories [standard for Spine SDK][applyStandard]. + * Applies the plugin to the given [project]. */ override fun apply(project: Project) { super.apply(project) createExtension() - project.repositories.applyStandard() + project.tryApplyStandardRepositories() check(extension != null) { "The extension of the `${this::class.simpleName}` has not been created." } @@ -82,3 +87,30 @@ public class RootPlugin : public const val ID: String = "io.spine.root" } } + +/** + * Attempts to apply repositories [standard for Spine SDK][applyStandard] to the project + * by inspecting the `dependencyResolutionManagement.repositoriesMode` value set + * in `settings.gradle.kts`. + * + * If the value set explicitly or assumed as [RepositoriesMode.PREFER_PROJECT], + * the repositories are applied. + */ +private fun Project.tryApplyStandardRepositories() { + val settings = project.settings + if (settings == null) { + repositories.applyStandard() + return + } + val mode = settings.dependencyResolutionManagement.repositoriesMode.get() + if (mode == RepositoriesMode.PREFER_PROJECT) { + repositories.applyStandard() + } +} + +private val Project.settings: SettingsInternal? + get() = try { + (project.gradle as GradleInternal).settings + } catch (_: IllegalStateException) { + null + } diff --git a/gradle-root-plugin/src/test/kotlin/io/spine/tools/gradle/root/RootPluginSpec.kt b/gradle-root-plugin/src/test/kotlin/io/spine/tools/gradle/root/RootPluginSpec.kt index 006d6850..45aeac95 100644 --- a/gradle-root-plugin/src/test/kotlin/io/spine/tools/gradle/root/RootPluginSpec.kt +++ b/gradle-root-plugin/src/test/kotlin/io/spine/tools/gradle/root/RootPluginSpec.kt @@ -30,6 +30,7 @@ import io.kotest.matchers.collections.shouldContain import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe import io.kotest.matchers.string.shouldContain +import io.kotest.matchers.string.shouldNotContain import io.spine.tools.gradle.task.BaseTaskName import io.spine.tools.gradle.testing.Gradle import io.spine.tools.gradle.testing.Gradle.BUILD_SUCCESSFUL @@ -93,6 +94,77 @@ internal class RootPluginSpec { urls shouldContain "https://europe-maven.pkg.dev/spine-event-engine/snapshots" } + @Test + fun `apply repositories if 'repositoriesMode' is 'PREFER_PROJECT'`( + @TempDir projectDir: File + ) { + Gradle.settingsFile.under(projectDir).writeText( + """ + dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.PREFER_PROJECT) + } + """.trimIndent() + ) + Gradle.buildFile.under(projectDir).writeText( + """ + plugins { + id("io.spine.root") + } + + tasks.register("checkRepos") { + doLast { + if (project.repositories.isEmpty()) { + println("NO_REPOS") + } else { + project.repositories.forEach { + println("REPO: " + it.name) + } + } + } + } + """.trimIndent() + ) + + val result = runGradleBuild(projectDir, listOf("checkRepos")) + result.output shouldContain "REPO: MavenLocal" + } + + @Test + fun `not apply repositories if 'repositoriesMode' is other than 'PREFER_PROJECT'`( + @TempDir projectDir: File + ) { + Gradle.settingsFile.under(projectDir).writeText( + """ + dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + } + """.trimIndent() + ) + Gradle.buildFile.under(projectDir).writeText( + """ + plugins { + id("io.spine.root") + } + + tasks.register("checkRepos") { + doLast { + if (project.repositories.isEmpty()) { + println("NO_REPOS") + } else { + project.repositories.forEach { + println("REPO: " + it.name) + } + } + } + } + """.trimIndent() + ) + + val result = runGradleBuild(projectDir, listOf("checkRepos")) + result.output shouldContain "NO_REPOS" + result.output shouldNotContain "REPO: MavenLocal" + } + @Test fun `be applied via its ID`(@TempDir projectDir: File) { Gradle.buildFile.under(projectDir).writeText(