From 69c7eea29e36fb52700d2192ea2c45ed9a6bcad0 Mon Sep 17 00:00:00 2001 From: Patrice Haltaya Date: Sat, 10 Oct 2026 15:54:13 +0200 Subject: [PATCH] Build: move to the Agenda Tech toolchain (AGP 9, Kotlin 2.4, compileSdk 37) Gradle 8.13 -> 9.8.1, AGP 8.13.2 -> 9.4.1, Kotlin 2.3.21 -> 2.4.10, Hilt 2.57.2 -> 2.60.1, Compose BOM 2026.09.00, Navigation 2.10.2, Hilt Navigation 1.4.0, core-ktx 1.19.1, lifecycle 2.11.0, compileSdk 37. targetSdk stays 36: nothing changes in how the app behaves on a device. Same chain as Agenda Tech and App Manager Tech. - AGP 9 compiles Kotlin itself: the org.jetbrains.kotlin.android plugin is gone. - The Kotlin Gradle Plugin is pinned with `strictly` to the catalog's version, as on App Manager Tech: AGP 9 brings its own KGP, and CodeQL 2.27 refuses Kotlin 2.4.20+. - Gradle 9.8.1: distribution and wrapper jar SHA-256 match services.gradle.org and F-Droid's gradle-transparency-log; distributionSha256Sum is now in the wrapper properties. - Dependabot: the ignores that only existed because of AGP 8 are removed; Kotlin stays capped below 2.4.20. - Lint runs out of the Gradle daemon (android.experimental.runLintInProcess=false). On the first AGP 9 gate, lintAnalyzeDebugUnitTest and lintAnalyzeDebugAndroidTest died on an internal error of lint's Kotlin analyser while KSP2 ran in the same JVM; lint alone, or after KSP, passed. Out of process it shares nothing with KSP. Cost measured: +6 s on the gate. Measured: - Local gate from a clean build, no build cache: green; 425 unit tests, 0 failures (same count as main). Room schema still matches the Flutter one. - Release R8 build: versionCodes 5000-5003, and the same 4 permissions, locales, ABI and targetSdk as the published 3.0.0 APK (aapt2 on both). APK names unchanged, so the F-Droid recipe (NDK 27.0.12077973 and CMake 3.22.1 pinned) builds as before. F-Droid already serves Agenda Tech 1.2.0, built on its servers with AGP 9.4.1 and compileSdk 37. - Instrumented suite on the emulator (API 34): 469/484. The 15 others need what an emulator lacks: a screen lock for the Keystore (12), an enrolled fingerprint (1), a Whisper model (2). The 15 Keystore tests of those classes, run on a Galaxy S9 with a temporary screen lock: 15/15. - R8 release APK (x86_64, debug-signed) driven on the emulator: start-up and SQLCipher open, editor, Markdown preview, links panel, legal pages, a folder turned into a passphrase vault (Argon2 through Bouncy Castle), locked, unlocked, a sealed note created. No crash. - Debug build started on a Galaxy S9 (Android 10) and a Galaxy S24 FE (Android 16). Reviews: Claude Opus 5.5 and GPT-5.6 sol on this diff. GPT: no defect. Claude: one probable finding, AGP 9's R8 defaults (strict full mode for keep rules) could strip a constructor kept by a member-less rule. Both app rules list their members, the app uses no reflection, and the R8 APK above runs every library path that could be affected. Co-Authored-By: Claude Opus 5.5 --- .github/dependabot.yml | 27 ++----- README.fr.md | 6 +- README.md | 6 +- app/build.gradle.kts | 6 +- build.gradle.kts | 18 ++++- gradle.properties | 13 +++- gradle/libs.versions.toml | 29 ++++---- gradle/wrapper/gradle-wrapper.jar | Bin 43705 -> 48749 bytes gradle/wrapper/gradle-wrapper.properties | 5 +- gradlew | 13 ++-- gradlew.bat | 86 ++++++++++++++--------- 11 files changed, 119 insertions(+), 90 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f421d64d..2f40bc93 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -29,30 +29,11 @@ updates: patterns: - "org.junit*" ignore: - # AGP 9 is a migration (Kotlin moves into AGP), done by hand, not a version bump. - - dependency-name: "com.android.application" - update-types: ["version-update:semver-major"] - - dependency-name: "com.android.tools.build:gradle" - update-types: ["version-update:semver-major"] - # Hilt 2.58+ requires AGP 9 (gradle/libs.versions.toml). - - dependency-name: "com.google.dagger*" - versions: [">= 2.58"] - # These require AGP 9.1 and compileSdk 37 (measured on PR #14, 2026-10-05): Compose 1.12, Navigation - # 2.10, Hilt Navigation 1.4. core-ktx is capped for the same reason (gradle/libs.versions.toml). - # They come with the AGP 9 migration, as on Agenda Tech, not one bump at a time. - - dependency-name: "androidx.compose:compose-bom" - versions: [">= 2026.09.00"] - - dependency-name: "androidx.navigation:*" - versions: [">= 2.10.0"] - - dependency-name: "androidx.hilt:*" - versions: [">= 1.4.0"] - - dependency-name: "androidx.core:*" - versions: [">= 1.19.0"] - # Kotlin 2.4 goes with the AGP 9 migration too (2.4.10 fails the build here, PR #15). Beyond that, - # CodeQL 2.27 refuses Kotlin 2.4.20+ ("currently supports versions below 2.4.20", measured on - # Agenda Tech). + # Kotlin 2.4.20+: CodeQL 2.27 refuses to compile it ("currently supports versions below 2.4.20", + # measured on Agenda Tech). A bump PR would fail on every run; the root build.gradle.kts also pins + # the compiler with `strictly`. Remove once a CodeQL release supports it. - dependency-name: "org.jetbrains.kotlin*" - versions: [">= 2.4.0"] + versions: [">= 2.4.20"] # JUnit majors stay a deliberate step (JUnit 6 needs Kotlin 2.2+ and drops deprecated APIs). Minor # bumps pass since the platform launcher is declared through the BOM (gradle/libs.versions.toml): # before that, ANY version but 5.11.3 discovered no test (PRs #16 and #21). diff --git a/README.fr.md b/README.fr.md index 9403c27e..d31ae097 100644 --- a/README.fr.md +++ b/README.fr.md @@ -146,8 +146,8 @@ Pas de Play Store : aucun compte n'est nécessaire pour installer. ## Construction locale -Prérequis : JDK 17, SDK Android 36, NDK `27.0.12077973` et CMake 3.22.1 (épinglés dans -`app/build.gradle.kts`). Gradle 8.13 arrive avec le wrapper. +Prérequis : JDK 17, SDK Android 37, NDK `27.0.12077973` et CMake 3.22.1 (épinglés dans +`app/build.gradle.kts`). Gradle 9.8.1 arrive avec le wrapper. ```bash ./gradlew testDebugUnitTest lintDebug @@ -165,7 +165,7 @@ et l'APK universel `versionCode × 10`. ## Technique -- Kotlin 2.3, Jetpack Compose (Material 3), Hilt, Room sur **SQLCipher** 4.16, DataStore +- Kotlin 2.4, Jetpack Compose (Material 3), Hilt, Room sur **SQLCipher** 4.16, DataStore - Bouncy Castle (Argon2id), Keystore Android, AES-256-GCM de la plateforme - `org.jetbrains:markdown` (aperçu), whisper.cpp par JNI (dictée) - **Aucune bibliothèque réseau** diff --git a/README.md b/README.md index a304dd8b..124779bb 100644 --- a/README.md +++ b/README.md @@ -140,8 +140,8 @@ No Play Store: no account is needed to install. ## Local build -Requirements: JDK 17, Android SDK 36, NDK `27.0.12077973` and CMake 3.22.1 (pinned in -`app/build.gradle.kts`). Gradle 8.13 comes with the wrapper. +Requirements: JDK 17, Android SDK 37, NDK `27.0.12077973` and CMake 3.22.1 (pinned in +`app/build.gradle.kts`). Gradle 9.8.1 comes with the wrapper. ```bash ./gradlew testDebugUnitTest lintDebug @@ -158,7 +158,7 @@ and the universal APK `versionCode × 10`. ## Stack -- Kotlin 2.3, Jetpack Compose (Material 3), Hilt, Room on **SQLCipher** 4.16, DataStore +- Kotlin 2.4, Jetpack Compose (Material 3), Hilt, Room on **SQLCipher** 4.16, DataStore - Bouncy Castle (Argon2id), Android Keystore, AES-256-GCM from the platform - `org.jetbrains:markdown` (preview), whisper.cpp through JNI (dictation) - **No network library** diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5b468ad9..fc5b4ce3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,7 +4,7 @@ import java.util.Properties plugins { alias(libs.plugins.android.application) - alias(libs.plugins.kotlin.android) + // No `org.jetbrains.kotlin.android`: AGP 9 compiles Kotlin itself. alias(libs.plugins.kotlin.compose) alias(libs.plugins.ksp) alias(libs.plugins.hilt) @@ -69,7 +69,9 @@ android { // classes, et donc les alias Keystore que `flutter_secure_storage` a dérivés du nom de paquet. // Cf. docs/01-DECISIONS.md D-007. namespace = "com.filestech.notes_tech" - compileSdk = 36 + // compileSdk 37 as in Agenda Tech and App Manager Tech: the AndroidX releases built for AGP 9 + // require it. targetSdk stays 36 (below), so the app's behaviour on the device does not change. + compileSdk = 37 defaultConfig { // ⚠️ PAS `com.filestech.notes_tech` par défaut — voir le bloc « prise de place » ci-dessus. diff --git a/build.gradle.kts b/build.gradle.kts index fef66241..336f83c0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,22 @@ +// The Kotlin compiler version, as a real cap. With AGP 9 the Kotlin Gradle Plugin (KGP) is a +// dependency of AGP itself, and Gradle keeps the HIGHEST version requested: the catalog's `kotlin` +// entry reaches the compiler only through the Compose plugin. A future AGP asking for 2.4.20+ would +// raise the compiler silently past what CodeQL accepts. `strictly` holds it at the catalog's version +// whatever is requested: Gradle downgrades every higher request to it (measured on App Manager Tech, +// 2026-10-08). Raising Kotlin is therefore always a deliberate edit of the catalog. +buildscript { + dependencies { + constraints { + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") { + version { strictly(libs.versions.kotlin.get()) } + because("CodeQL 2.27 refuses Kotlin 2.4.20+; the compiler must be the catalog's version") + } + } + } +} + plugins { alias(libs.plugins.android.application) apply false - alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.kotlin.compose) apply false alias(libs.plugins.ksp) apply false alias(libs.plugins.hilt) apply false diff --git a/gradle.properties b/gradle.properties index f1171e98..a335fb70 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,5 +23,16 @@ kotlin.incremental=true ## Démon du compilateur Kotlin — sa propre JVM, il ne partage pas celle de Gradle. kotlin.daemon.jvmargs=-Xmx1536m -XX:MaxMetaspaceSize=512m -XX:+UseParallelGC -Dfile.encoding=UTF-8 -## KSP 2 — requis par AGP 8.13+. +## KSP 2 — required since AGP 8.13, and the only KSP that runs with AGP 9. ksp.useKSP2=true + +## Lint in its own process, not in the Gradle daemon (AGP 9 migration, 2026-10-10). +## +## Measured on the first AGP 9.4.1 gate: `lintAnalyzeDebugUnitTest` and `lintAnalyzeDebugAndroidTest` +## both died on an internal error of lint's Kotlin analyser ("Error while resolving FirRegularClassImpl +## from RAW_FIR to COMPILER_REQUIRED_ANNOTATIONS", "this is a bug in lint"), while +## `kspDebugAndroidTestKotlin` was running in the same JVM. Lint alone, or after KSP, passed on the same +## sources: a race between two users of the Kotlin compiler inside one process, not a finding. Out of +## process, lint shares nothing with KSP or with its other analyses, so the order the parallel build +## happens to pick no longer decides whether CI is red. +android.experimental.runLintInProcess=false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 598b7b05..894d4fb2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,17 +1,19 @@ [versions] -# Chaîne de build — alignée sur Agenda Tech et SMS Tech (AGP 8.13.x / Kotlin 2.3.20 / KSP 2.3.9 / JDK 17). -agp = "8.13.2" -kotlin = "2.3.21" +# Build toolchain — the one Agenda Tech and App Manager Tech run (AGP 9.4.1 / Kotlin 2.4.10 / KSP 2.3.12 +# / JDK 17). AGP 9 compiles Kotlin itself: there is no `org.jetbrains.kotlin.android` plugin any more. +agp = "9.4.1" +# Capped below 2.4.20: CodeQL 2.27 refuses to compile from there ("currently supports versions below +# 2.4.20", measured on Agenda Tech). This is the EXACT compiler version: the root build.gradle.kts pins +# the Kotlin Gradle Plugin to it with `strictly`, since AGP 9 would otherwise bring its own. +kotlin = "2.4.10" ksp = "2.3.12" -# AndroidX / Compose -compose-bom = "2026.06.00" -# core-ktx et lifecycle sont plafonnés au dernier palier compatible AGP 8.13 / compileSdk 36, -# comme dans les deux autres projets Kotlin du portefeuille. Ne pas monter isolément. -core-ktx = "1.18.0" +# AndroidX / Compose — the releases built for AGP 9 and compileSdk 37, as in Agenda Tech. +compose-bom = "2026.09.00" +core-ktx = "1.19.1" activity-compose = "1.13.0" -lifecycle = "2.10.0" -navigation-compose = "2.9.8" +lifecycle = "2.11.0" +navigation-compose = "2.10.2" room = "2.8.5" datastore = "1.1.1" splashscreen = "1.2.0" @@ -20,9 +22,9 @@ splashscreen = "1.2.0" # (`authenticate` after `onSaveInstanceState` gives up in silence; see `BiometricPrompts`). biometric = "1.1.0" -# Hilt — plafonné à la dernière version compatible AGP 8.x (Hilt 2.58+ exige AGP 9). -hilt = "2.57.2" -hilt-navigation-compose = "1.3.0" +# Hilt — 2.58+ requires AGP 9. Same versions as Agenda Tech and App Manager Tech. +hilt = "2.60.1" +hilt-navigation-compose = "1.4.0" coroutines = "1.11.0" @@ -128,7 +130,6 @@ detekt-formatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", [plugins] android-application = { id = "com.android.application", version.ref = "agp" } -kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 9bbc975c742b298b441bfb90dbc124400a3751b9..9fa7f288283f81eec4952784c271abd7e0938dee 100644 GIT binary patch delta 40570 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 delta 35682 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 M6y*Q_x+1*$59OICIsgCw diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37f853b1..a78c88e5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,10 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionSha256Sum=dce76f55f8e251a3a1f130eb120f30b3d271de2b76c9b0729d316b5a1b6dc01f +distributionUrl=https\://services.gradle.org/distributions/gradle-9.8.1-bin.zip networkTimeout=10000 +retries=0 +retryBackOffMs=500 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index faf93008..249efbb0 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ ############################################################################## # -# Gradle start up script for POSIX generated by Gradle. +# gradlew start up script for POSIX generated by Gradle. # # Important for running: # @@ -29,7 +29,7 @@ # bash, then to run this script, type that shell name before the whole # command line, like: # -# ksh Gradle +# ksh gradlew # # Busybox and similar reduced shells will NOT work, because this script # requires all of these POSIX shell features: @@ -57,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -114,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -172,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -212,8 +210,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9d21a218..3185a43f 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -19,12 +19,39 @@ @if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem -@rem Gradle startup script for Windows +@rem gradlew startup script for Windows @rem @rem ########################################################################## -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions + +@rem Catch executions from older scripts and ensure they exit cleanly. +@rem This can be removed once we can be reasonably confident that few people +@rem will be migrating directly to this new wrapper. +goto afterSafetyNet +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +goto exitWithErrorLevel +:afterSafetyNet set DIRNAME=%~dp0 if "%DIRNAME%"=="" set DIRNAME=. @@ -45,13 +72,14 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +1>&2 echo. +1>&2 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +1>&2 echo. +1>&2 echo Please set the JAVA_HOME variable in your environment to match the +1>&2 echo location of your Java installation. -goto fail +"%COMSPEC%" /c exit 1 +goto exitWithErrorLevel :findJavaFromJavaHome set JAVA_HOME=%JAVA_HOME:"=% @@ -59,36 +87,26 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +1>&2 echo. +1>&2 echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +1>&2 echo. +1>&2 echo Please set the JAVA_HOME variable in your environment to match the +1>&2 echo location of your Java installation. -goto fail +"%COMSPEC%" /c exit 1 +goto exitWithErrorLevel :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +@rem Execute gradlew +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel & goto exitWithErrorLevel -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem This label must not be changed. We rely on old scripts being able to jump to this point. +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL%