New cyclic dependency between modules (ARCH8205)
Key kotlin.architecture.new-dependency · Severity warning · Category architecture
Merge requests only. Flags an import that makes one package depend on another which, on the default branch, already depends on it (directly or within three steps): the two now depend on each other. Packages most of the codebase depends on, and a package with its own parent or child, are not counted.
Incorrect
Section titled “Incorrect”// on the default branch app.shipping already imports app.billingpackage app.billing
import app.shipping.ParcelTracker
class InvoiceBuilder(private val tracker: ParcelTracker)Correct
Section titled “Correct”package app.billing
interface ShipmentStatus { fun of(orderId: Long): String } // implemented in app.shipping
class InvoiceBuilder(private val status: ShipmentStatus)