Rick Busarow
Rick Busarow
In grotesquely large codebases with thousands of modules, the initial check can take enough time that it's no longer trivial to just execute against all modules. If a developer is...
Currently, the DSL allows for individual rule toggles, but auto-correct behavior is global. And the only rule which has a root-level "ignore" list is `UnusedDependency` with `ignoreUnusedFinding`. Other findings have...
If the target module has a convention plugin, that convention plugin may have its own non-Google `android { ... }` configuration block. example: ```groovy plugins { id `company-convention-plugin` } ourCompany...
https://docs.gradle.org/7.0-rc-1/userguide/declaring_dependencies.html#sec:type-safe-project-accessors ``` kotlin dependencies { // type-safe alternative to project(":commons:utils:numbers") implementation(projects.commons.utils.numbers) } ```
If a module has some Kotlin file using `@file:JvmName(...)`, then Java classes will consume any top-level declarations using that name. For instance: ```kotlin @file:JvmName("Objects") package com.example ``` The java classes...
For a huge project which has been operating without ModuleCheck, the first run should find hundreds or thousands of issues. It's likely that the maintainers would prefer a gradual adoption...
The current implementation re-parses the build file for every single finding. This is extremely time-consuming on huge projects with lots of findings. Some observations: - "inherited" findings can't really be...
`ModuleCheckTask` as it exists right now violates rules about configuration cache arguments. This basically boils down to passing a Gradle `Project` into the task. The existing `GradleProjectProvider` will need to...
...instead of just doing everything lazily and in-memory. At the end of parsing a module, serialize all the data collected and write it somewhere in `./build` as json or proto....
AndroidManifests can reference Android resources (strings, styles, etc.) and classes like Activities. Currently, any references inside an `AndroidManifest.xml` do not count as dependency references. So for instance, if a `:moduleA`...