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 (App.bproj or workspace member).
  2. Resolve dependency DAG.
  3. Sync Project.lock.
  4. Materialize dependencies under obj/beskid.
  5. Build dependencies before dependents.
accTitle: Dependency build order
accDescr: Dependency A is required by dependency B, and dependency B is required by the application target.
flowchart TD
  D1[Dep A Lib] --> D2[Dep B Lib]
  D2 --> APP[App target]

Text equivalent: Build dependency A before dependency B. Build dependency B before the application 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.bws (chapter 06). Single-project repos stay ignorant and happy.

SymptomLikely cause
Unsupported provider in graphActive git dependency; current materialization supports path and registry sources
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?