Skip to content
Beskid The Beskid Book

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

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.

  1. Discover manifest (Project.proj or workspace member).
  2. Resolve dependency DAG.
  3. Sync Project.lock.
  4. Materialize dependencies under obj/beskid.
  5. Build dependencies before dependents.
flowchart TD
  D1[Dep A Lib] --> D2[Dep B Lib]
  D2 --> APP[App target]
  • beskid tree on a .bd file 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).

Multi-project repos resolve members via Workspace.proj (chapter 06). Single-project repos stay ignorant and happy.

SymptomLikely cause
Disabled provider in graphgit/registry dep while only path enabled
Missing entrytarget.entry not under project.root
CycleCircular path dependencies between projects
Stale lockChanged manifest without lock/fetch

04. Where does this file even go?