[importlinter]
root_packages =
    core
    device
    app
include_external_packages = False

[importlinter:contract:layers]
name = Runtime layers only depend downwards: app -> device -> core
type = layers
layers =
    app
    device
    core

[importlinter:contract:core-is-pure]
name = Core cannot depend on runtime adapters or application
type = forbidden
source_modules =
    core
forbidden_modules =
    device
    app
allow_indirect_imports = False

[importlinter:contract:no-cycles]
name = Runtime packages contain no dependency cycles
type = acyclic_siblings
ancestors =
    core
    device
    app
