* 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
The IDs stated in the build-logic build script must exactly match the plugin
IDs in the version catalog file. This solution reduces the inherent
duplication.
To avoid any IDE errors about missing plugin accessors when adding new plugins
to the build-logic script, it's recommended to add the new ID in the version
catalog first, then invoke Gradle (sync) in order to generate the accessor
classes.
- Create `LintConventionPlugin` to configure Lint on all compatible modules: Android applications, Android libraries and JVM modules.
- Run `lintProdRelease` in CI instead of the default `lintDemoDebug` which is less important compared to production code.
- Rearrange CI steps to make it more clear that Lint should is an additional step after build (build -> test -> lint).
- Enable SARIF support and upload results to GitHub's CodeQL to get inline feedback on PRs.
If we really need better perfs, we could restore `lint.checkDependencies = true` on the `:app` module and only execute `:app:lintProdRelease`.
But in practice, this does not change the total build time on this project.
* github/main:
Bump version to 4
Remove unused DropdownMenu component
Route topic chip tap events up to NiaNavHost
Apply suggestions from code review
Migrate custom room configuration into a convention plugin
Update docs/ArchitectureLearningJourney.md - User action follow topic
Update docs/ArchitectureLearningJourney.md - Writing data
Change-Id: I417abcaba792bbf297a8156bb1c4cf677dcb8bea
* Move Hilt setup to convention plugin
* Disable Hilt on modules where it's not needed
* Enable non-transitive R classes
* Fix `configuration` blocks called in wrong scope
* Move imperative Flavors code from build.gradle
* Disable unnecessary build features globally
* Disable configure-on-demand as it's not encouraged
* Don't use internal AGP packages in plugins
Change-Id: I1bee3e3fd0103054637b979a350f9fd2312ae8ba