From 5ba16edde991ab39bec27283a85072b5d3750be8 Mon Sep 17 00:00:00 2001 From: Aurimas Date: Fri, 30 Jan 2026 09:17:35 -0800 Subject: [PATCH] Apply spotless by default (#2055) * Apply spotless by default - Upgrades to spotless 8.2.1 - Moves spotless setup from an init.gradle.kts to build-logic - Narrows down the scope of `target` in spotless configuration to be more precise to workaround https://github.com/diffplug/spotless/issues/2717 - Updates all references to init.gradle.kts Ran gradle-profiler ./gradlew build --dry-run to validate performance impact. Before PR: Mean 10,527.96 ms with 289.01 ms std dev After PR: Mean 11,251.78 ms with 530.29 ms std dev Regression is there, but quite minor. Test: ./gradlew spotlessCheck * Address comments from AI overlords * Fix usage of rootProject * Enable spotless for build-logic via root project --- .github/pull_request_template.md | 2 +- .github/workflows/Build.yaml | 2 +- .run/spotlessApply.run.xml | 1 - AGENTS.md | 2 +- app-nia-catalog/src/main/AndroidManifest.xml | 2 +- .../res/mipmap-anydpi-v26/ic_launcher.xml | 2 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 2 +- .../src/main/res/values/strings.xml | 2 +- .../src/main/res/values/themes.xml | 2 +- .../res/mipmap-anydpi-v26/ic_launcher.xml | 2 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 2 +- app/src/prod/AndroidManifest.xml | 2 +- build-logic/convention/build.gradle.kts | 1 + ...droidApplicationComposeConventionPlugin.kt | 18 ++--- .../AndroidApplicationConventionPlugin.kt | 20 ++--- ...roidApplicationFirebaseConventionPlugin.kt | 20 ++--- ...droidApplicationFlavorsConventionPlugin.kt | 20 ++--- ...ndroidApplicationJacocoConventionPlugin.kt | 18 ++--- .../AndroidFeatureApiConventionPlugin.kt | 19 +++-- .../AndroidFeatureImplConventionPlugin.kt | 18 ++--- .../AndroidLibraryComposeConventionPlugin.kt | 18 ++--- .../kotlin/AndroidLibraryConventionPlugin.kt | 20 ++--- .../AndroidLibraryJacocoConventionPlugin.kt | 18 ++--- .../kotlin/AndroidLintConventionPlugin.kt | 18 ++--- .../kotlin/AndroidRoomConventionPlugin.kt | 18 ++--- .../kotlin/AndroidTestConventionPlugin.kt | 18 ++--- .../src/main/kotlin/HiltConventionPlugin.kt | 18 ++--- .../main/kotlin/JvmLibraryConventionPlugin.kt | 20 ++--- .../convention/src/main/kotlin/RootPlugin.kt | 2 + .../nowinandroid/AndroidInstrumentedTests.kt | 22 ++--- .../samples/apps/nowinandroid/Badging.kt | 20 +++-- .../apps/nowinandroid/GradleManagedDevices.kt | 19 +++-- .../samples/apps/nowinandroid/Jacoco.kt | 6 +- .../apps/nowinandroid/KotlinAndroid.kt | 2 +- .../samples/apps/nowinandroid/NiaBuildType.kt | 18 ++--- .../samples/apps/nowinandroid/NiaFlavor.kt | 18 ++++- .../apps/nowinandroid/PrintTestApks.kt | 25 +++--- .../apps/nowinandroid/ProjectExtensions.kt | 18 ++--- .../samples/apps/nowinandroid/Spotless.kt | 80 +++++++++++++++++++ build.gradle.kts | 1 + core/analytics/src/main/AndroidManifest.xml | 2 +- core/common/build.gradle.kts | 2 +- core/data/src/main/AndroidManifest.xml | 2 +- core/database/src/main/AndroidManifest.xml | 2 +- .../src/main/AndroidManifest.xml | 2 +- core/datastore/src/main/AndroidManifest.xml | 2 +- .../designsystem/src/main/AndroidManifest.xml | 2 +- core/domain/build.gradle.kts | 2 +- core/domain/src/main/AndroidManifest.xml | 2 +- core/network/src/main/AndroidManifest.xml | 2 +- ...core_notifications_ic_nia_notification.xml | 2 +- .../src/main/AndroidManifest.xml | 2 +- core/testing/src/main/AndroidManifest.xml | 2 +- core/ui/src/main/AndroidManifest.xml | 2 +- feature/bookmarks/api/build.gradle.kts | 2 +- .../impl/src/main/AndroidManifest.xml | 2 +- .../foryou/api/src/main/AndroidManifest.xml | 2 +- .../api/src/main/res/values/strings.xml | 2 +- feature/foryou/impl/build.gradle.kts | 2 +- feature/interests/api/build.gradle.kts | 2 +- .../api/src/main/AndroidManifest.xml | 2 +- ...re_interests_api_ic_detail_placeholder.xml | 2 +- feature/search/api/build.gradle.kts | 1 - feature/search/impl/build.gradle.kts | 2 +- feature/topic/api/build.gradle.kts | 2 +- feature/topic/impl/build.gradle.kts | 2 +- gradle/init.gradle.kts | 59 -------------- gradle/libs.versions.toml | 4 + tools/pre-push | 2 +- .../src/main/AndroidManifest.xml | 2 +- 70 files changed, 349 insertions(+), 305 deletions(-) create mode 100644 build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/Spotless.kt delete mode 100644 gradle/init.gradle.kts diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 265ff2ba5..efe4ef29a 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -10,7 +10,7 @@ Thanks for submitting a pull request. To accept your pull request we need you do **Ensure tests pass and code is formatted correctly** - Run local tests on the `DemoDebug` variant by running `./gradlew testDemoDebug` -- Fix code formatting: `./gradlew --init-script gradle/init.gradle.kts spotlessApply` +- Fix code formatting: `./gradlew spotlessApply` **Add a description** diff --git a/.github/workflows/Build.yaml b/.github/workflows/Build.yaml index 7e5a80eea..eec554b37 100644 --- a/.github/workflows/Build.yaml +++ b/.github/workflows/Build.yaml @@ -48,7 +48,7 @@ jobs: run: ./gradlew :build-logic:convention:check - name: Check spotless - run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache + run: ./gradlew spotlessCheck - name: Check Dependency Guard id: dependencyguard_verify diff --git a/.run/spotlessApply.run.xml b/.run/spotlessApply.run.xml index 5c4dac833..03bd19a6d 100644 --- a/.run/spotlessApply.run.xml +++ b/.run/spotlessApply.run.xml @@ -4,7 +4,6 @@ diff --git a/AGENTS.md b/AGENTS.md index efb39ef19..edcfd396e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -26,7 +26,7 @@ The main Android app lives in the `app/` folder. Feature modules live in `featur The app and Android libraries have two product flavors: `demo` and `prod`, and two build types: `debug` and `release`. - Build: `./gradlew assemble{Variant}`. Typically `assembleDemoDebug`. -- Fix linting/formatting: `./gradlew --init-script gradle/init.gradle.kts spotlessApply` +- Fix linting/formatting: `./gradlew spotlessApply` - Run local tests: `./gradlew {variant}Test` - Run single test: `./gradlew {variant}Test --tests "com.example.myapp.MyTestClass"` - Run local screenshot tests: `./gradlew verifyRoborazziDemoDebug` diff --git a/app-nia-catalog/src/main/AndroidManifest.xml b/app-nia-catalog/src/main/AndroidManifest.xml index 90341aac1..57286c5f1 100644 --- a/app-nia-catalog/src/main/AndroidManifest.xml +++ b/app-nia-catalog/src/main/AndroidManifest.xml @@ -36,4 +36,4 @@ - \ No newline at end of file + diff --git a/app-nia-catalog/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app-nia-catalog/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 28878a729..9572fa6cb 100644 --- a/app-nia-catalog/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/app-nia-catalog/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -18,4 +18,4 @@ - \ No newline at end of file + diff --git a/app-nia-catalog/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app-nia-catalog/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index 28878a729..9572fa6cb 100644 --- a/app-nia-catalog/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app-nia-catalog/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -18,4 +18,4 @@ - \ No newline at end of file + diff --git a/app-nia-catalog/src/main/res/values/strings.xml b/app-nia-catalog/src/main/res/values/strings.xml index 69a3e1b11..0d92aba29 100644 --- a/app-nia-catalog/src/main/res/values/strings.xml +++ b/app-nia-catalog/src/main/res/values/strings.xml @@ -16,4 +16,4 @@ --> NiA Catalog - \ No newline at end of file + diff --git a/app-nia-catalog/src/main/res/values/themes.xml b/app-nia-catalog/src/main/res/values/themes.xml index 9aeeb83a6..afcbaf5fc 100644 --- a/app-nia-catalog/src/main/res/values/themes.xml +++ b/app-nia-catalog/src/main/res/values/themes.xml @@ -16,4 +16,4 @@ -->