autonomousapps / autonomousapps/dependency-analysis-gradle-plugin
Feature Request: Advice on modules that could/should be combined
- 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.**
Sometimes when you modularize a codebase the final structure is not clear and you might "over-modularize", meaning things that should be in a single module are separated into multiple modules
**Describe the solution you'd like**
Would like the plugin to give advice on which module are good candidates for combining into a single module.
a couple of heuristics on when you might want to combine modules:
1. when any given module **depends on** `A` it _also_ depends on module `B` XX% (configurable) of the time, and vice versa.
2. module `A` and module `B` apply the same (or mostly the same) plugins ("mostly same" should be configurable)
3. module `A` and module `B` have the same (or mostly the same) dependencies ("mostly same" should be configurable)
4. module `A` and module `B` are less than NNN (configurable) lines of code when combined (don't want to create huge modules)
if some combination of those things are true, then "combineModuleAdvice" should propose combining module `A` and `B`
**Additional context**
I generally like to start with smallest modules possible, see what structure emerges, and then combine modules that are similar.
Contributor guide
Research direction
The issue names combineModuleAdvice but does not identify files or tests. Start by locating that entry point and the existing module-advice behavior, then determine how configurable dependency, plugin, similarity, and combined-line thresholds should be represented; done means qualifying module pairs produce actionable combination advice.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100