Files

279 lines
7.7 KiB
TOML

# Machine-readable dependency and layer policy.
policy_version = 1
[layers]
"contract/can" = 0
"contract/imu" = 0
"protocol/imu" = 1
"protocol/motor" = 1
"protocol/remote" = 1
"transport/can" = 2
"transport/serial" = 2
"device/imu" = 3
"device/motor" = 3
"device/remote" = 3
"control/algorithm" = 4
"control/chassis" = 4
"device/esc" = 4
"experiment/trace" = 5
"control/motor" = 6
"model/motor" = 7
"simulation/motor" = 8
"tooling/tuning" = 9
"config/chassis" = 10
"application/bench" = 11
"application/daemon" = 12
"application/tools" = 13
"application/tuning" = 13
"verification/integration" = 14
[forbidden.normal]
esc_bus = ["motor-control", "pid"]
bench = ["tuning"]
sim_harness = ["tuning"]
[trait_boundaries]
protocol_motor = ["MotorProtocol", "EffortScale", "FeedbackFields"]
device_motor = ["MotorSpec", "MotorFeedback", "EffortDrive", "VelocityDrive", "PositionDrive", "Disable"]
model_motor = ["MotorPlant", "DcModelSpec", "VoltageModelSpec"]
esc_bus_forbidden_symbols = ["MotorKind", "EscModel"]
[packages."bench"]
path = "crates/application/bench"
layer = "application/bench"
rank = 11
normal = ["can", "esc-bus", "experiment", "motor", "motor-control", "slcan", "socketcan"]
dev = []
external = ["anyhow", "thiserror", "tokio", "tracing"]
dev_external = ["tokio"]
[packages."can"]
path = "crates/contract/can"
layer = "contract/can"
rank = 0
normal = []
dev = []
external = ["tokio"]
dev_external = ["tokio"]
[packages."chassis-config"]
path = "crates/config/chassis"
layer = "config/chassis"
rank = 10
normal = ["esc-bus", "mecanum", "motor", "motor-control", "motor-protocol"]
dev = []
external = ["serde", "thiserror", "toml"]
dev_external = ["approx"]
[packages."chassis-tune"]
path = "crates/application/tuning"
layer = "application/tuning"
rank = 13
normal = ["bench", "can", "chassis-config", "esc-bus", "experiment", "motor", "motor-control", "motor-model", "motor-protocol", "sim-harness", "slcan", "socketcan", "tuning"]
dev = []
external = ["anyhow", "argmin", "argmin-math", "clap", "csv", "indicatif", "plotters", "rand", "rayon", "serde", "serde_json", "thiserror", "tokio", "toml", "tracing", "tracing-subscriber"]
dev_external = ["approx"]
[packages."chassisd"]
path = "crates/application/daemon"
layer = "application/daemon"
rank = 12
normal = ["can", "chassis-config", "dr16", "dr16-protocol", "esc-bus", "mecanum", "motor", "motor-control", "sim-harness", "socketcan"]
dev = []
external = ["clap", "tokio", "tracing", "tracing-subscriber"]
dev_external = ["approx", "tokio"]
[packages."delta10"]
path = "crates/device/imu"
layer = "device/imu"
rank = 3
normal = ["can", "delta10-protocol", "imu"]
dev = []
external = ["thiserror", "tokio"]
dev_external = []
[packages."delta10-protocol"]
path = "crates/protocol/imu"
layer = "protocol/imu"
rank = 1
normal = ["can", "imu"]
dev = []
external = ["thiserror"]
dev_external = ["approx"]
[packages."dr16"]
path = "crates/device/remote"
layer = "device/remote"
rank = 3
normal = ["dr16-protocol"]
dev = []
external = ["serial", "tokio", "tracing"]
dev_external = ["tokio"]
[packages."dr16-protocol"]
path = "crates/protocol/remote"
layer = "protocol/remote"
rank = 1
normal = []
dev = []
external = ["thiserror"]
dev_external = ["proptest"]
[packages."esc-bus"]
path = "crates/device/esc"
layer = "device/esc"
rank = 4
normal = ["can", "motor", "motor-protocol"]
dev = []
external = ["thiserror", "tokio", "tracing"]
dev_external = ["approx", "tokio"]
[packages."experiment"]
path = "crates/experiment/trace"
layer = "experiment/trace"
rank = 5
normal = []
dev = []
external = []
dev_external = ["approx"]
[packages."imu"]
path = "crates/contract/imu"
layer = "contract/imu"
rank = 0
normal = []
dev = []
external = []
dev_external = []
[packages."integration-tests"]
path = "crates/verification/integration"
layer = "verification/integration"
rank = 14
normal = ["can", "esc-bus", "experiment", "motor", "motor-control", "motor-model", "motor-protocol", "sim-harness", "socketcan"]
dev = []
external = ["tokio"]
dev_external = ["tokio"]
[packages."mecanum"]
path = "crates/control/chassis"
layer = "control/chassis"
rank = 4
normal = []
dev = []
external = []
dev_external = ["approx", "proptest"]
[packages."motor"]
path = "crates/device/motor"
layer = "device/motor"
rank = 3
normal = ["can", "motor-protocol"]
dev = []
external = ["thiserror"]
dev_external = ["approx"]
[packages."motor-control"]
path = "crates/control/motor"
layer = "control/motor"
rank = 6
normal = ["motor", "pid"]
dev = []
external = []
dev_external = ["approx"]
[packages."motor-model"]
path = "crates/model/motor"
layer = "model/motor"
rank = 7
normal = ["motor-protocol"]
dev = []
external = []
dev_external = ["approx"]
[packages."motor-protocol"]
path = "crates/protocol/motor"
layer = "protocol/motor"
rank = 1
normal = ["can"]
dev = []
external = ["thiserror"]
dev_external = ["approx", "proptest"]
[packages."pid"]
path = "crates/control/algorithm"
layer = "control/algorithm"
rank = 4
normal = []
dev = []
external = []
dev_external = ["approx"]
[packages."sim-harness"]
path = "crates/simulation/motor"
layer = "simulation/motor"
rank = 8
normal = ["can", "experiment", "motor", "motor-control", "motor-model", "motor-protocol"]
dev = []
external = ["rand", "thiserror", "tokio", "tracing"]
dev_external = ["approx", "tokio"]
[packages."slcan"]
path = "crates/transport/serial"
layer = "transport/serial"
rank = 2
normal = ["can"]
dev = []
external = ["serial", "slcan", "thiserror", "tokio", "tracing"]
dev_external = ["tokio"]
[packages."socketcan"]
path = "crates/transport/can"
layer = "transport/can"
rank = 2
normal = ["can"]
dev = []
external = ["socketcan", "thiserror", "tokio", "tracing"]
dev_external = ["tokio"]
[packages."spin"]
path = "crates/application/tools"
layer = "application/tools"
rank = 13
normal = ["bench", "dr16", "dr16-protocol", "esc-bus", "experiment", "mecanum", "motor", "motor-control", "slcan", "socketcan"]
dev = []
external = ["clap", "tokio", "tracing", "tracing-subscriber"]
dev_external = ["tokio"]
[packages."tuning"]
path = "crates/tooling/tuning"
layer = "tooling/tuning"
rank = 9
normal = ["experiment", "motor-control", "motor-model", "motor-protocol", "pid", "sim-harness"]
dev = []
external = ["argmin", "argmin-math", "indicatif", "rand", "rayon", "serde", "thiserror", "toml", "tracing"]
dev_external = ["approx", "proptest"]
[external_roles]
tokio = ["contract", "transport", "device", "simulation", "tooling", "application", "verification"]
socketcan = ["transport", "device", "application", "verification"]
slcan = ["transport", "device", "application", "verification"]
serial = ["transport", "device", "application", "verification"]
thiserror = ["protocol", "transport", "device", "control", "model", "experiment", "simulation", "tooling", "config", "application", "verification"]
tracing = ["transport", "device", "simulation", "tooling", "application", "verification"]
tracing-subscriber = ["application", "verification"]
serde = ["config", "tooling", "application", "verification"]
toml = ["config", "tooling", "application", "verification"]
clap = ["application", "verification"]
argmin = ["tooling", "application", "verification"]
argmin-math = ["tooling", "application", "verification"]
rand = ["simulation", "tooling", "application", "verification"]
rayon = ["tooling", "application", "verification"]
csv = ["tooling", "application", "verification"]
serde_json = ["tooling", "application", "verification"]
indicatif = ["tooling", "application", "verification"]
plotters = ["tooling", "application", "verification"]
anyhow = ["tooling", "application", "verification"]
approx = ["protocol", "transport", "device", "control", "model", "experiment", "simulation", "tooling", "config", "application", "verification"]
proptest = ["protocol", "transport", "device", "control", "model", "experiment", "simulation", "tooling", "config", "application", "verification"]