Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/dwarves

.nornir/release-graph-math.md

Release doctor — graph-math core (SCC · MFAS · waves · invertive --auto)

The release doctor's problem-solving is grounded in graph theory + planning, not ad-hoc if/else. This is the "less if-else, more utfallsrum + graph methods" engine (workspace_nordisk PLAN EPIC 1–3, 9–10). Lives in src/release/graph_math.rs, wired into src/release/doctor.rs and src/bin/nornir.rs.

Design

Model the constellation as a directed graph G = (V, E): V = crates, E = publish-gating edges (A → B ⇔ A has an in-workspace Normal/Build path dep on B ⇒ B must publish first). Dev-deps, pure version-pins and publish = false crates are excluded from E.

Guide

# See cycles as ranked, proven solutions + the parallel publish waves:
nornir release doctor            # report now includes "Publish waves" and
                                 # "MFAS — ranked cycle solutions" sections

# Invertive self-heal: assess → apply AUTO remedies → re-assess → fixpoint,
# else stop at the minimal set of human decisions.
nornir release doctor --auto

# Dry invertive: print the ordered remedy PLAN (operator sequence), apply
# nothing — the "what would you do" inverse trace.
nornir release doctor --auto --dry

--auto reuses the existing --fix (path-dep version= gaps) as its first operator; skew → bump-to-semilattice-join is next; a DEV/OPTIONAL cycle cut is AUTO (cost 0/1), a crate-split is a DECISION.

Idiot guide