Skip to content
Beskid The Beskid Book

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

03.2 Targets and outputs

App, Lib, and Test targets, entrypoints, and what build/run actually produces.

Targets and outputs

Targets are how you tell the truth about what gets built. A repo without targets is just a folder that gaslights CI.

kindTypical use
AppExecutable entry (entry → main module file)
LibLibrary surface consumed by dependents
TestTest harness entry for beskid test

kind and source on dependencies are enum-like—prefer unquoted identifiers (App, path) for tooling alignment.

entry is relative to project.root (default Src). If you set root = "src" because you hate consistency, every entry path moves with it—do not mix mental models.

Real projects often define both App and Test (and several libs). CLI commands accept --target to select which graph root you mean:

Terminal window
beskid build --project ./Project.proj --target App
beskid test --project ./Project.proj --target Tests
flowchart TD
  P[Project.proj] --> T1[target App]
  P --> T2[target Tests]
  P --> D[dependencies]
  D --> T1
  D --> T2

Materialized dependencies land under obj/beskid/ (layout details in build workflow). Treat obj/ as generated unless you enjoy merge conflicts.

beskid new