From 168a698989a6763228f051cfd46153022f282746 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 9 Jul 2026 12:59:26 +0000 Subject: [PATCH 1/6] Initial plan From e74d39d016e42b190422b1aa92db1ce7359413fc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 9 Jul 2026 13:04:08 +0000 Subject: [PATCH 2/6] Add build-time MT_DEBUG_DEFAULT support for Constants.DEBUG --- build.gradle | 22 +++++++++++++++++++ .../java/org/mtransit/commons/Constants.kt | 2 +- .../org/mtransit/commons/ConstantsTests.kt | 12 ++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/test/java/org/mtransit/commons/ConstantsTests.kt diff --git a/build.gradle b/build.gradle index 0b87c97..c103558 100644 --- a/build.gradle +++ b/build.gradle @@ -9,6 +9,28 @@ plugins { def envCI = System.getenv("CI") def isCI = envCI != null && envCI != "" +def envMTDebugDefault = System.getenv("MT_DEBUG_DEFAULT") +def mtDebugDefault = envMTDebugDefault != null ? envMTDebugDefault.toBoolean() : false +def generatedBuildConfigDir = layout.buildDirectory.dir("generated/sources/mt/buildConfig") + +tasks.register("generateBuildConfig") { + outputs.dir(generatedBuildConfigDir) + doLast { + def outputFile = generatedBuildConfigDir.get().file("org/mtransit/commons/BuildConfig.kt").asFile + outputFile.parentFile.mkdirs() + outputFile.text = """package org.mtransit.commons + +internal object BuildConfig { + const val DEBUG_DEFAULT = ${mtDebugDefault} +} +""" + } +} + +tasks.named("compileKotlin") { + dependsOn(tasks.named("generateBuildConfig")) + source(generatedBuildConfigDir) +} java { sourceCompatibility = rootProject.javaVersion diff --git a/src/main/java/org/mtransit/commons/Constants.kt b/src/main/java/org/mtransit/commons/Constants.kt index 857fc11..66e4ecb 100644 --- a/src/main/java/org/mtransit/commons/Constants.kt +++ b/src/main/java/org/mtransit/commons/Constants.kt @@ -5,7 +5,7 @@ object Constants { @JvmStatic // val DEBUG = true // DEBUG - val DEBUG = false + val DEBUG = BuildConfig.DEBUG_DEFAULT const val NEW_LINE = '\n' const val SPACE = ' ' diff --git a/src/test/java/org/mtransit/commons/ConstantsTests.kt b/src/test/java/org/mtransit/commons/ConstantsTests.kt new file mode 100644 index 0000000..51c65a3 --- /dev/null +++ b/src/test/java/org/mtransit/commons/ConstantsTests.kt @@ -0,0 +1,12 @@ +package org.mtransit.commons + +import kotlin.test.Test + +class ConstantsTests { + + @Test + fun test_DEBUG() { + val expectedDebug = (System.getenv("MT_DEBUG_DEFAULT") ?: "false").toBoolean() + assert(Constants.DEBUG == expectedDebug) + } +} From 1176b2f241157e6b523ada7dcb46d9fcce665409 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 9 Jul 2026 13:45:44 +0000 Subject: [PATCH 3/6] Address review feedback on build config generation --- build.gradle | 17 ++++++++--------- .../java/org/mtransit/commons/ConstantsTests.kt | 3 ++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index c103558..846d309 100644 --- a/build.gradle +++ b/build.gradle @@ -9,35 +9,34 @@ plugins { def envCI = System.getenv("CI") def isCI = envCI != null && envCI != "" -def envMTDebugDefault = System.getenv("MT_DEBUG_DEFAULT") -def mtDebugDefault = envMTDebugDefault != null ? envMTDebugDefault.toBoolean() : false +def mtDebugDefault = providers.environmentVariable("MT_DEBUG_DEFAULT") + .map { it.toBoolean() } + .orElse(false) def generatedBuildConfigDir = layout.buildDirectory.dir("generated/sources/mt/buildConfig") -tasks.register("generateBuildConfig") { +def generateBuildConfig = tasks.register("generateBuildConfig") { + inputs.property("mtDebugDefault", mtDebugDefault) outputs.dir(generatedBuildConfigDir) doLast { + def debugDefault = mtDebugDefault.get() def outputFile = generatedBuildConfigDir.get().file("org/mtransit/commons/BuildConfig.kt").asFile outputFile.parentFile.mkdirs() outputFile.text = """package org.mtransit.commons internal object BuildConfig { - const val DEBUG_DEFAULT = ${mtDebugDefault} + const val DEBUG_DEFAULT = ${debugDefault} } """ } } -tasks.named("compileKotlin") { - dependsOn(tasks.named("generateBuildConfig")) - source(generatedBuildConfigDir) -} - java { sourceCompatibility = rootProject.javaVersion targetCompatibility = rootProject.javaVersion toolchain.languageVersion = JavaLanguageVersion.of(rootProject.javaToolchainVersion.toString()) } kotlin { + sourceSets.main.kotlin.srcDir(generateBuildConfig) compilerOptions { jvmTarget = JvmTarget.fromTarget(rootProject.javaVersion.toString()) // allWarningsAsErrors = true // replaced by "DeprecatedCall" in lint diff --git a/src/test/java/org/mtransit/commons/ConstantsTests.kt b/src/test/java/org/mtransit/commons/ConstantsTests.kt index 51c65a3..c4c92da 100644 --- a/src/test/java/org/mtransit/commons/ConstantsTests.kt +++ b/src/test/java/org/mtransit/commons/ConstantsTests.kt @@ -1,12 +1,13 @@ package org.mtransit.commons import kotlin.test.Test +import kotlin.test.assertEquals class ConstantsTests { @Test fun test_DEBUG() { val expectedDebug = (System.getenv("MT_DEBUG_DEFAULT") ?: "false").toBoolean() - assert(Constants.DEBUG == expectedDebug) + assertEquals(expectedDebug, Constants.DEBUG) } } From ea84b601dfa733962fa75bd8c532f73dd46f7d2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20M=C3=A9a?= Date: Thu, 9 Jul 2026 13:42:24 -0400 Subject: [PATCH 4/6] fix --- build.gradle | 1 + .../java/org/mtransit/commons/ConstantsTests.kt | 13 ------------- 2 files changed, 1 insertion(+), 13 deletions(-) delete mode 100644 src/test/java/org/mtransit/commons/ConstantsTests.kt diff --git a/build.gradle b/build.gradle index 846d309..dfcaf33 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,7 @@ def generateBuildConfig = tasks.register("generateBuildConfig") { outputs.dir(generatedBuildConfigDir) doLast { def debugDefault = mtDebugDefault.get() + println "> Debug default: " + debugDefault def outputFile = generatedBuildConfigDir.get().file("org/mtransit/commons/BuildConfig.kt").asFile outputFile.parentFile.mkdirs() outputFile.text = """package org.mtransit.commons diff --git a/src/test/java/org/mtransit/commons/ConstantsTests.kt b/src/test/java/org/mtransit/commons/ConstantsTests.kt deleted file mode 100644 index c4c92da..0000000 --- a/src/test/java/org/mtransit/commons/ConstantsTests.kt +++ /dev/null @@ -1,13 +0,0 @@ -package org.mtransit.commons - -import kotlin.test.Test -import kotlin.test.assertEquals - -class ConstantsTests { - - @Test - fun test_DEBUG() { - val expectedDebug = (System.getenv("MT_DEBUG_DEFAULT") ?: "false").toBoolean() - assertEquals(expectedDebug, Constants.DEBUG) - } -} From b816afaacd4a88f3447f716994ffac1aa475b92a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 9 Jul 2026 17:51:06 +0000 Subject: [PATCH 5/6] Harden BuildConfig generation output handling --- build.gradle | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index dfcaf33..53e80c8 100644 --- a/build.gradle +++ b/build.gradle @@ -19,15 +19,16 @@ def generateBuildConfig = tasks.register("generateBuildConfig") { outputs.dir(generatedBuildConfigDir) doLast { def debugDefault = mtDebugDefault.get() - println "> Debug default: " + debugDefault - def outputFile = generatedBuildConfigDir.get().file("org/mtransit/commons/BuildConfig.kt").asFile + def outputDir = generatedBuildConfigDir.get().asFile + project.delete(outputDir) + def outputFile = new File(outputDir, "org/mtransit/commons/BuildConfig.kt") outputFile.parentFile.mkdirs() - outputFile.text = """package org.mtransit.commons + outputFile.write("""package org.mtransit.commons internal object BuildConfig { const val DEBUG_DEFAULT = ${debugDefault} } -""" +""", "UTF-8") } } From e153e4bfa3d2c1be9cf41d6caa302e8edd45521e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 9 Jul 2026 18:07:24 +0000 Subject: [PATCH 6/6] Avoid project access in BuildConfig generation task action --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 53e80c8..3239c2f 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ def generateBuildConfig = tasks.register("generateBuildConfig") { doLast { def debugDefault = mtDebugDefault.get() def outputDir = generatedBuildConfigDir.get().asFile - project.delete(outputDir) + outputDir.deleteDir() def outputFile = new File(outputDir, "org/mtransit/commons/BuildConfig.kt") outputFile.parentFile.mkdirs() outputFile.write("""package org.mtransit.commons