03.5 Tree and resolution
Dependency DAG, build order, and debugging resolution without guessing."
Tree and resolution
Resolution is not magic—it is a DAG walk with a lockfile receipt.
Build lifecycle (deterministic sketch)
Section titled “Build lifecycle (deterministic sketch)”- Discover manifest (
Project.projor workspace member). - Resolve dependency DAG.
- Sync
Project.lock. - Materialize dependencies under
obj/beskid. - Build dependencies before dependents.
flowchart TD D1[Dep A Lib] --> D2[Dep B Lib] D2 --> APP[App target]
Inspecting structure
Section titled “Inspecting structure”beskid treeon a.bdfile shows AST shape (parser-level).- Project graphs: use reference resolution and CLI project introspection flags documented on tree command where applicable to manifests.
When resolution fails, read the diagnostic first—path dependencies love typos (../Wrong).
Workspace members
Section titled “Workspace members”Multi-project repos resolve members via Workspace.proj (chapter 06). Single-project repos stay ignorant and happy.
Failure modes
Section titled “Failure modes”| Symptom | Likely cause |
|---|---|
| Disabled provider in graph | git/registry dep while only path enabled |
| Missing entry | target.entry not under project.root |
| Cycle | Circular path dependencies between projects |
| Stale lock | Changed manifest without lock/fetch |