Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

Dependency graph and cycle policy - Design model

Platform spec article

Dependency graph and cycle policy - Design model

Spec standingStandard

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki

Each workspace node is a Project.proj with typed edges:

Edge kindMeaning
Registry dependencyResolved version pin from lockfile
Path dependencyRelative project root inside workspace
Transitive closureUsed for CompilePlan and doc workspace scan
flowchart LR
  app[App project]
  lib[Lib dependency]
  modp[Mod project]
  core[corelib package]
  app --> lib
  app --> core
  modp --> lib

Directed cycles must be reported during graph build. Policy knobs (error, warn, permissive) select whether resolution aborts or continues with diagnostics. Cycles involving Mod projects must include the mod id in the diagnostic path.

  • beskid_analysis::projects::graph resolver and validator
  • compiler/crates/beskid_tests/src/projects/corelib/layout.rs — multi-project layouts
  • compiler/crates/beskid_tests/src/projects/corelib/mod.rs — graph expectations
  • compiler/crates/beskid_cli/src/commands/doc.rs — docs consume resolved graph