autonomousapps / autonomousapps/dependency-analysis-gradle-plugin

Feature Request: Advice on modules that could/should be combined

Open
#1,193 1 comment 1 reaction 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.