INNER CODE UNIT · Python
collect_failures
MinaProtocol/mina · maintenance/deps/main.py:236
def collect_failures(
graph: DuneGraph, sources: SourceIndex, baseline: Baseline, forbidden: Sequence[LayeringRule]
) -> list[Failure]:
"""Every way the tree currently disagrees with its pins. Pure."""
current = analysis.budgets(graph)
failures = _budget_failures(current, baseline)
failures.extend(_opam_failures(analysis.external_packages(graph), baseline))
failures.extend(
LayeringBroken(violation=violation)
for violation in analysis.rule_violations(graph, forbidden)
)
failures.extend(
_unused_dep_failures(
analysis.unreferenced_deps(graph, sources), analysis.impact_index(graph), baseline
)
)
return failures