Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

Contracts and edge cases

Platform spec article

Contracts and edge cases

Spec standingStandard

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki
  • Lock header version — Only # Project.lock v1 is accepted; unknown headers must error.
  • Required lock fields — Each dependency entry must include materialized and source roots for replay.
  • Registry alias resolution — Unknown aliases must fail at fetch time with actionable messages.
  • Workspace member integrity — Every member path must resolve to a Project.proj under the workspace root.
  • Reproducible materializationmaterialized_root paths must be stable for a given lock file on the same machine class (OS-specific subtrees allowed when documented in compiler feature).
CaseBehavior
Missing lock under strict CLI policybuild/run fail before compile
Stale lock after manifest editlock/update rewrite; LSP invalidates compilation cache
Partial fetch failureUnresolved dependency policy (Warn vs Error) controls whether graph proceeds
Duplicate dependency namesValidation error during graph build
Corelib-only path fallbackImplicit Std edge omitted for corelib workspace shards to avoid cycles

Published workspace bundles on the registry use server-side validation in pckg/src/Server/Services/Workspace/ (WorkspacePublishService, WorkspacePackageManifest). Client-side beskid pckg commands must emit manifests compatible with those validators before upload.