DependencyEdge

data class DependencyEdge(val from: String, val to: String, val configuration: String, val sourceSet: String? = null, val declarationLine: Int? = null, val reason: String? = null, val adrUrl: String? = null)(source)

A directed dependency from one module to another.

Edges are extracted from Gradle configurations during the aalekhExtract task and stored in ModuleDependencyGraph.edges. Each edge represents one implementation(project(...)) or equivalent declaration.

Parameters

from

Source module Gradle path, e.g. ":feature:login:data".

to

Target module Gradle path, e.g. ":core:domain".

configuration

Gradle configuration name: "implementation", "api", "testImplementation", "commonMainImplementation", etc.

sourceSet

For KMP modules: the source set that owns this dependency, e.g. "commonMain", "androidMain". Null for standard Android/JVM configurations.

declarationLine

Approximate 1-based line number of this dependency declaration in the source module's build file. Populated by scanning the build file during extraction. Null when the file was not scanned or the line could not be located. Used in violation messages to point developers directly to the line to remove.

reason

Human-readable explanation of why this dependency exists. Displayed in the HTML report as an edge annotation and in violation messages. Null when no explanation has been provided.

adrUrl

URL to an Architecture Decision Record (ADR) that justifies this dependency. Rendered as a link in the HTML report so reviewers can navigate to the decision. Null when no ADR URL has been provided.

Constructors

Link copied to clipboard
constructor(from: String, to: String, configuration: String, sourceSet: String? = null, declarationLine: Int? = null, reason: String? = null, adrUrl: String? = null)

Properties

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

True when this is a production api dependency - it leaks transitively onto every consumer of from. Covers the plain api configuration and KMP / build-type source-set api configurations (commonMainApi, androidMainApi, debugApi, ...). Test api configurations (testApi) are excluded - they never affect the production surface.

Link copied to clipboard

True when this dependency is only available at compile time, not at runtime.

Link copied to clipboard

True when this is a test-only dependency that does not affect production builds.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val to: String