From 4a84a18faf3f217e1b86d555a5e33d6dbede43ba Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 2 Mar 2026 12:38:32 +0000 Subject: [PATCH 1/4] Initial plan From 53f0cb013ed024abcc0f76e2d6480d1b05a19179 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 2 Mar 2026 12:48:24 +0000 Subject: [PATCH 2/4] Extract all dependencies into 3 Gradle version catalogs Co-authored-by: jGleitz <4305652+jGleitz@users.noreply.github.com> --- base/build.gradle.kts | 14 +++++++------- build.gradle.kts | 8 ++++---- gradle/buildLibs.versions.toml | 12 ++++++++++++ gradle/libs.versions.toml | 8 ++++++++ gradle/testLibs.versions.toml | 11 +++++++++++ kotest/build.gradle.kts | 14 +++++++------- settings.gradle.kts | 11 +++++++++++ spek/build.gradle.kts | 18 +++++++++--------- 8 files changed, 69 insertions(+), 27 deletions(-) create mode 100644 gradle/buildLibs.versions.toml create mode 100644 gradle/libs.versions.toml create mode 100644 gradle/testLibs.versions.toml diff --git a/base/build.gradle.kts b/base/build.gradle.kts index b60b431..9e76f5a 100644 --- a/base/build.gradle.kts +++ b/base/build.gradle.kts @@ -2,21 +2,21 @@ import org.gradle.api.JavaVersion.VERSION_17 import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { - kotlin("jvm") - id("org.jetbrains.dokka") + alias(buildLibs.plugins.kotlin.jvm) + alias(buildLibs.plugins.dokka) } val artifactId by extra("testfiles") val description by extra("Manage test files and directories neatly!") dependencies { - testImplementation("org.spekframework.spek2:spek-dsl-jvm:2.0.17") - testImplementation("ch.tutteli.atrium:atrium-fluent-en_GB:0.16.0") - testRuntimeOnly("org.spekframework.spek2:spek-runner-junit5:2.0.17") - testRuntimeOnly("org.junit.platform:junit-platform-launcher") + testImplementation(libs.spek.dsl.jvm) + testImplementation(testLibs.atrium.fluent.en.gb) + testRuntimeOnly(testLibs.spek.runner.junit5) + testRuntimeOnly(testLibs.junit.platform.launcher) constraints { - testImplementation(kotlin("reflect")) + testImplementation(testLibs.kotlin.reflect) } } diff --git a/build.gradle.kts b/build.gradle.kts index cd86adb..4ff0ff9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,12 +1,12 @@ import org.jetbrains.dokka.gradle.DokkaExtension plugins { - kotlin("jvm") version "2.3.10" - id("org.jetbrains.dokka") version "2.1.0" - id("org.jetbrains.dokka-javadoc") version "2.1.0" apply false + alias(buildLibs.plugins.kotlin.jvm) + alias(buildLibs.plugins.dokka) + alias(buildLibs.plugins.dokka.javadoc) apply false `maven-publish` signing - id("io.github.gradle-nexus.publish-plugin") version "2.0.0" + alias(buildLibs.plugins.nexus.publish) idea } diff --git a/gradle/buildLibs.versions.toml b/gradle/buildLibs.versions.toml new file mode 100644 index 0000000..8f25ba0 --- /dev/null +++ b/gradle/buildLibs.versions.toml @@ -0,0 +1,12 @@ +[versions] +develocity = "4.3.2" +dokka = "2.1.0" +kotlin = "2.3.10" +nexus-publish = "2.0.0" + +[plugins] +develocity = { id = "com.gradle.develocity", version.ref = "develocity" } +dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } +dokka-javadoc = { id = "org.jetbrains.dokka-javadoc", version.ref = "dokka" } +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexus-publish" } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..032cc94 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,8 @@ +[versions] +kotest = "4.6.4" +spek = "2.0.17" + +[libraries] +kotest-framework-api = { module = "io.kotest:kotest-framework-api", version.ref = "kotest" } +spek-dsl-jvm = { module = "org.spekframework.spek2:spek-dsl-jvm", version.ref = "spek" } +spek-runtime-jvm = { module = "org.spekframework.spek2:spek-runtime-jvm", version.ref = "spek" } diff --git a/gradle/testLibs.versions.toml b/gradle/testLibs.versions.toml new file mode 100644 index 0000000..284406b --- /dev/null +++ b/gradle/testLibs.versions.toml @@ -0,0 +1,11 @@ +[versions] +atrium = "0.16.0" +kotest = "4.6.4" +spek = "2.0.17" + +[libraries] +atrium-fluent-en-gb = { module = "ch.tutteli.atrium:atrium-fluent-en_GB", version.ref = "atrium" } +junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher" } +kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect" } +kotest-runner-junit5 = { module = "io.kotest:kotest-runner-junit5", version.ref = "kotest" } +spek-runner-junit5 = { module = "org.spekframework.spek2:spek-runner-junit5", version.ref = "spek" } diff --git a/kotest/build.gradle.kts b/kotest/build.gradle.kts index c1b3358..91e8383 100644 --- a/kotest/build.gradle.kts +++ b/kotest/build.gradle.kts @@ -2,8 +2,8 @@ import org.gradle.api.JavaVersion.VERSION_17 import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { - kotlin("jvm") - id("org.jetbrains.dokka") + alias(buildLibs.plugins.kotlin.jvm) + alias(buildLibs.plugins.dokka) } val artifactId by extra("kotest-files") @@ -12,14 +12,14 @@ val description by extra("Manage test files and directories neatly when testing dependencies { api(project(":base")) // Kotest is a peer dependency - compileOnly("io.kotest:kotest-framework-api:4.6.4") + compileOnly(libs.kotest.framework.api) - testImplementation("io.kotest:kotest-runner-junit5:4.6.4") - testImplementation("ch.tutteli.atrium:atrium-fluent-en_GB:0.16.0") - testRuntimeOnly("org.junit.platform:junit-platform-launcher") + testImplementation(testLibs.kotest.runner.junit5) + testImplementation(testLibs.atrium.fluent.en.gb) + testRuntimeOnly(testLibs.junit.platform.launcher) constraints { - testImplementation(kotlin("reflect")) + testImplementation(testLibs.kotlin.reflect) } } diff --git a/settings.gradle.kts b/settings.gradle.kts index 3005386..5443a07 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,16 @@ rootProject.name = "testfiles" +dependencyResolutionManagement { + versionCatalogs { + create("testLibs") { + from(files("gradle/testLibs.versions.toml")) + } + create("buildLibs") { + from(files("gradle/buildLibs.versions.toml")) + } + } +} + plugins { id("com.gradle.develocity") version "4.3.2" } diff --git a/spek/build.gradle.kts b/spek/build.gradle.kts index 9f4d84c..dd4c975 100644 --- a/spek/build.gradle.kts +++ b/spek/build.gradle.kts @@ -2,8 +2,8 @@ import org.gradle.api.JavaVersion.VERSION_17 import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { - kotlin("jvm") - id("org.jetbrains.dokka") + alias(buildLibs.plugins.kotlin.jvm) + alias(buildLibs.plugins.dokka) } val artifactId by extra("spek-testfiles") @@ -11,17 +11,17 @@ val description by extra("Manage test files and directories neatly when testing dependencies { // Spek is a peer dependency - compileOnly("org.spekframework.spek2:spek-dsl-jvm:2.0.17") - compileOnly("org.spekframework.spek2:spek-runtime-jvm:2.0.17") + compileOnly(libs.spek.dsl.jvm) + compileOnly(libs.spek.runtime.jvm) api(project(":base")) - testImplementation("org.spekframework.spek2:spek-dsl-jvm:2.0.17") - testImplementation("ch.tutteli.atrium:atrium-fluent-en_GB:0.16.0") - testRuntimeOnly("org.spekframework.spek2:spek-runner-junit5:2.0.17") - testRuntimeOnly("org.junit.platform:junit-platform-launcher") + testImplementation(libs.spek.dsl.jvm) + testImplementation(testLibs.atrium.fluent.en.gb) + testRuntimeOnly(testLibs.spek.runner.junit5) + testRuntimeOnly(testLibs.junit.platform.launcher) constraints { - testImplementation(kotlin("reflect")) + testImplementation(testLibs.kotlin.reflect) } } From 57fb33b03c51bf20a4af9975d15b126e4a1b4262 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 2 Mar 2026 13:01:18 +0000 Subject: [PATCH 3/4] Address review: reorder settings, simplify version refs, remove constraints blocks Co-authored-by: jGleitz <4305652+jGleitz@users.noreply.github.com> --- base/build.gradle.kts | 4 ---- gradle/buildLibs.versions.toml | 9 +++------ gradle/libs.versions.toml | 3 +-- gradle/testLibs.versions.toml | 12 +++--------- kotest/build.gradle.kts | 4 ---- settings.gradle.kts | 8 ++++---- spek/build.gradle.kts | 4 ---- 7 files changed, 11 insertions(+), 33 deletions(-) diff --git a/base/build.gradle.kts b/base/build.gradle.kts index 9e76f5a..ceba6f3 100644 --- a/base/build.gradle.kts +++ b/base/build.gradle.kts @@ -14,10 +14,6 @@ dependencies { testImplementation(testLibs.atrium.fluent.en.gb) testRuntimeOnly(testLibs.spek.runner.junit5) testRuntimeOnly(testLibs.junit.platform.launcher) - - constraints { - testImplementation(testLibs.kotlin.reflect) - } } java { diff --git a/gradle/buildLibs.versions.toml b/gradle/buildLibs.versions.toml index 8f25ba0..6bdfd55 100644 --- a/gradle/buildLibs.versions.toml +++ b/gradle/buildLibs.versions.toml @@ -1,12 +1,9 @@ [versions] -develocity = "4.3.2" dokka = "2.1.0" -kotlin = "2.3.10" -nexus-publish = "2.0.0" [plugins] -develocity = { id = "com.gradle.develocity", version.ref = "develocity" } +develocity = { id = "com.gradle.develocity", version = "4.3.2" } dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } dokka-javadoc = { id = "org.jetbrains.dokka-javadoc", version.ref = "dokka" } -kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } -nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexus-publish" } +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version = "2.3.10" } +nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version = "2.0.0" } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 032cc94..8924752 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,8 +1,7 @@ [versions] -kotest = "4.6.4" spek = "2.0.17" [libraries] -kotest-framework-api = { module = "io.kotest:kotest-framework-api", version.ref = "kotest" } +kotest-framework-api = { module = "io.kotest:kotest-framework-api", version = "4.6.4" } spek-dsl-jvm = { module = "org.spekframework.spek2:spek-dsl-jvm", version.ref = "spek" } spek-runtime-jvm = { module = "org.spekframework.spek2:spek-runtime-jvm", version.ref = "spek" } diff --git a/gradle/testLibs.versions.toml b/gradle/testLibs.versions.toml index 284406b..fc33422 100644 --- a/gradle/testLibs.versions.toml +++ b/gradle/testLibs.versions.toml @@ -1,11 +1,5 @@ -[versions] -atrium = "0.16.0" -kotest = "4.6.4" -spek = "2.0.17" - [libraries] -atrium-fluent-en-gb = { module = "ch.tutteli.atrium:atrium-fluent-en_GB", version.ref = "atrium" } +atrium-fluent-en-gb = { module = "ch.tutteli.atrium:atrium-fluent-en_GB", version = "0.16.0" } junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher" } -kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect" } -kotest-runner-junit5 = { module = "io.kotest:kotest-runner-junit5", version.ref = "kotest" } -spek-runner-junit5 = { module = "org.spekframework.spek2:spek-runner-junit5", version.ref = "spek" } +kotest-runner-junit5 = { module = "io.kotest:kotest-runner-junit5", version = "4.6.4" } +spek-runner-junit5 = { module = "org.spekframework.spek2:spek-runner-junit5", version = "2.0.17" } diff --git a/kotest/build.gradle.kts b/kotest/build.gradle.kts index 91e8383..b565b74 100644 --- a/kotest/build.gradle.kts +++ b/kotest/build.gradle.kts @@ -17,10 +17,6 @@ dependencies { testImplementation(testLibs.kotest.runner.junit5) testImplementation(testLibs.atrium.fluent.en.gb) testRuntimeOnly(testLibs.junit.platform.launcher) - - constraints { - testImplementation(testLibs.kotlin.reflect) - } } java { diff --git a/settings.gradle.kts b/settings.gradle.kts index 5443a07..4b95f03 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,9 @@ rootProject.name = "testfiles" +plugins { + id("com.gradle.develocity") version "4.3.2" +} + dependencyResolutionManagement { versionCatalogs { create("testLibs") { @@ -11,10 +15,6 @@ dependencyResolutionManagement { } } -plugins { - id("com.gradle.develocity") version "4.3.2" -} - include("base", "kotest", "spek") develocity { diff --git a/spek/build.gradle.kts b/spek/build.gradle.kts index dd4c975..d27a836 100644 --- a/spek/build.gradle.kts +++ b/spek/build.gradle.kts @@ -19,10 +19,6 @@ dependencies { testImplementation(testLibs.atrium.fluent.en.gb) testRuntimeOnly(testLibs.spek.runner.junit5) testRuntimeOnly(testLibs.junit.platform.launcher) - - constraints { - testImplementation(testLibs.kotlin.reflect) - } } java { From a3dbaed7137b693bcfe9859ff50f341a0a2c5d38 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 2 Mar 2026 13:09:01 +0000 Subject: [PATCH 4/4] Use single string notation in all catalogs; add version to junit-platform-launcher Co-authored-by: jGleitz <4305652+jGleitz@users.noreply.github.com> --- gradle/buildLibs.versions.toml | 6 +++--- gradle/libs.versions.toml | 2 +- gradle/testLibs.versions.toml | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/gradle/buildLibs.versions.toml b/gradle/buildLibs.versions.toml index 6bdfd55..e6431b4 100644 --- a/gradle/buildLibs.versions.toml +++ b/gradle/buildLibs.versions.toml @@ -2,8 +2,8 @@ dokka = "2.1.0" [plugins] -develocity = { id = "com.gradle.develocity", version = "4.3.2" } +develocity = "com.gradle.develocity:4.3.2" dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } dokka-javadoc = { id = "org.jetbrains.dokka-javadoc", version.ref = "dokka" } -kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version = "2.3.10" } -nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version = "2.0.0" } +kotlin-jvm = "org.jetbrains.kotlin.jvm:2.3.10" +nexus-publish = "io.github.gradle-nexus.publish-plugin:2.0.0" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8924752..64d5c3f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,6 +2,6 @@ spek = "2.0.17" [libraries] -kotest-framework-api = { module = "io.kotest:kotest-framework-api", version = "4.6.4" } +kotest-framework-api = "io.kotest:kotest-framework-api:4.6.4" spek-dsl-jvm = { module = "org.spekframework.spek2:spek-dsl-jvm", version.ref = "spek" } spek-runtime-jvm = { module = "org.spekframework.spek2:spek-runtime-jvm", version.ref = "spek" } diff --git a/gradle/testLibs.versions.toml b/gradle/testLibs.versions.toml index fc33422..61a85f2 100644 --- a/gradle/testLibs.versions.toml +++ b/gradle/testLibs.versions.toml @@ -1,5 +1,5 @@ [libraries] -atrium-fluent-en-gb = { module = "ch.tutteli.atrium:atrium-fluent-en_GB", version = "0.16.0" } -junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher" } -kotest-runner-junit5 = { module = "io.kotest:kotest-runner-junit5", version = "4.6.4" } -spek-runner-junit5 = { module = "org.spekframework.spek2:spek-runner-junit5", version = "2.0.17" } +atrium-fluent-en-gb = "ch.tutteli.atrium:atrium-fluent-en_GB:0.16.0" +junit-platform-launcher = "org.junit.platform:junit-platform-launcher:6.0.3" +kotest-runner-junit5 = "io.kotest:kotest-runner-junit5:4.6.4" +spek-runner-junit5 = "org.spekframework.spek2:spek-runner-junit5:2.0.17"