INNER CODE UNIT · Python
run_advise
MinaProtocol/mina · maintenance/deps/main.py:298
def run_advise(graph: DuneGraph, sources: SourceIndex) -> ExitCode:
warn_about_collisions(graph)
index = analysis.impact_index(graph)
pending = parse_rules(_read_json(RULES_PATH), "pending", required=False)
print(f"Dependency advice for {graph.root}")
edge_count = sum(len(deps) for deps in graph.edges.values())
print(
f"{len(graph.nodes)} stanzas, {edge_count} internal edges, "
f"{len(analysis.external_packages(graph))} opam packages"
)
weighted: list[tuple[int, UnreferencedDep, NodeId]] = []
free: list[UnreferencedDep] = []
for found in analysis.unreferenced_deps(graph, sources):
impact = index.get((found.source, found.dep))
if impact is None:
free.append(found)