From 49a4b4acf122893f4eb4c9d1b95d6d3bde8ac816 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 5 Nov 2025 12:01:39 +0800 Subject: [PATCH] Relocate toml lint task to buildSrc and extend against default task Fixes build errors after Gradle 9.x upgrade Ref: https://docs.gradle.org/current/userguide/implementing_custom_tasks.html Signed-off-by: Aayush Gupta --- app/build.gradle.kts | 6 ++-- buildSrc/build.gradle.kts | 7 +++++ .../src/main/kotlin/CheckDependenciesOrder.kt | 29 ++++++++++++------- 3 files changed, 30 insertions(+), 12 deletions(-) create mode 100644 buildSrc/build.gradle.kts rename app/check-dependencies.gradle.kts => buildSrc/src/main/kotlin/CheckDependenciesOrder.kt (73%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e4f318f65..7e50a0688 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -12,8 +12,6 @@ plugins { checkstyle } -apply(from = "check-dependencies.gradle.kts") - val gitWorkingBranch = providers.exec { commandLine("git", "rev-parse", "--abbrev-ref", "HEAD") }.standardOutput.asText.map { it.trim() } @@ -172,6 +170,10 @@ tasks.register("formatKtlint") { jvmArgs = listOf("--add-opens", "java.base/java.lang=ALL-UNNAMED") } +tasks.register("checkDependenciesOrder") { + tomlFile = layout.projectDirectory.file("../gradle/libs.versions.toml") +} + afterEvaluate { tasks.named("preDebugBuild").configure { if (!System.getProperties().containsKey("skipFormatKtlint")) { diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 000000000..cc02e636b --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,7 @@ +plugins { + `kotlin-dsl` +} + +repositories { + gradlePluginPortal() +} diff --git a/app/check-dependencies.gradle.kts b/buildSrc/src/main/kotlin/CheckDependenciesOrder.kt similarity index 73% rename from app/check-dependencies.gradle.kts rename to buildSrc/src/main/kotlin/CheckDependenciesOrder.kt index fc77148db..8bf92d8cd 100644 --- a/app/check-dependencies.gradle.kts +++ b/buildSrc/src/main/kotlin/CheckDependenciesOrder.kt @@ -4,18 +4,27 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -tasks.register("checkDependenciesOrder") { - group = "verification" - description = "Checks that each section in libs.versions.toml is sorted alphabetically" +import org.gradle.api.DefaultTask +import org.gradle.api.file.RegularFileProperty +import org.gradle.api.tasks.InputFile +import org.gradle.api.tasks.TaskAction - val tomlFile = file("../gradle/libs.versions.toml") +abstract class CheckDependenciesOrder : DefaultTask() { - doLast { - if (!tomlFile.exists()) { - throw GradleException("TOML file not found") - } + @get:InputFile + abstract val tomlFile: RegularFileProperty - val lines = tomlFile.readLines() + init { + group = "verification" + description = "Checks that each section in libs.versions.toml is sorted alphabetically" + } + + @TaskAction + fun run() { + val file = tomlFile.get().asFile + if (!file.exists()) error("TOML file not found") + + val lines = file.readLines() val nonSortedBlocks = mutableListOf>() var currentBlock = mutableListOf() var prevLine = "" @@ -50,7 +59,7 @@ tasks.register("checkDependenciesOrder") { } if (nonSortedBlocks.isNotEmpty()) { - throw GradleException( + error( "The following lines were not sorted:\n" + nonSortedBlocks.joinToString("\n\n") { it.joinToString("\n") } )