BuildInventory

data class BuildInventory(val modules: List<ModuleBuildInfo> = emptyList(), val catalogs: List<VersionCatalog> = emptyList(), val toolVersions: Map<String, String> = emptyMap(), val codeowners: Map<String, List<String>> = emptyMap(), val declaredMetadata: Map<String, ModuleMetadata> = emptyMap())(source)

Everything Aalekh knows about how the project is built, as opposed to how it is wired together.

The dependency graph answers "what depends on what"; this answers "what is this project made of" - which plugins, at which versions, on which toolchains, with which targets, owned by whom. It is the difference between a dependency-graph tool and a project inventory.

Every field is defaulted so a graph file written by an older plugin version still deserializes, and so a project that declares none of this still produces a valid, if empty, inventory.

Parameters

modules

Per-module build configuration, sorted by path.

catalogs

Version catalogs declared for the build.

toolVersions

Build-tool versions detected for the whole build, keyed by tool name ("gradle", "agp", "kotlin"). Absent keys mean the tool was not detected, not that it is not present.

codeowners

Module path to the owners CODEOWNERS assigns it, when such a file exists.

declaredMetadata

Module metadata read from .aalekh/modules.json, keyed by module path.

Constructors

Link copied to clipboard
constructor(modules: List<ModuleBuildInfo> = emptyList(), catalogs: List<VersionCatalog> = emptyList(), toolVersions: Map<String, String> = emptyMap(), codeowners: Map<String, List<String>> = emptyMap(), declaredMetadata: Map<String, ModuleMetadata> = emptyMap())

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

True when nothing at all was captured - the inventory panels stay hidden.

Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard

Build info for one module, or null when it has none recorded.