autonomousapps / autonomousapps/dependency-analysis-gradle-plugin
Feature Request: Give advice about plugin usage.
- Dominant language
- Kotlin
- Stars
- 2.2k
- Forks
- 158
- Avg merge
- 16h 25m
- Merged PRs (30d)
- 46
Description
**Is your feature request related to a problem? Please describe.**
I often want to know the minimal set of plugins that need to be applied to a given subproject.
Specifically:
- does removing plugin X from subproject Y break anything in my build?
- what plugins can I remove from which subprojects?
- answer does this question of "why subproject x needs plugin y?"
Specifically, AGP, `ksp`, `kapt` and other plugins that can be heavy weight.
**Describe the solution you'd like**
This might be impossible to do in the general case, and likely would need a way to define configurable logic per plugin to answer the question "is this plugin required for this subproject"
Maybe could detect if the plugin outputs nothing and doesn't generate any tasks, suggest that it may not be needed.
Also, could remove each thing in the `plugins {...}` block from each subproject one by one programmatically, and then run some configurable list of tasks to check if anything broke. This would probably be very slow and doesn't scale well.
Contributor guide
Research direction
The issue names no files or tests. Start by mapping how the Gradle plugin currently analyzes applied plugins, subprojects, outputs, and tasks; the work is not ready to start until the configurable plugin-logic design and the tasks used to validate removal are agreed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100