Skip to content
beskid The Beskid Book

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

18.2 Registry-assigned versions

A package artifact carries its exact semver; the registry verifies and preserves that immutable coordinate.

Artifact-bound versions

Every .bpk carries its exact semantic version in artifact-root package.json. beskid pckg pack selects that version from the package baseline or an explicit release plan; beskid pckg upload reads it from the artifact and sends it unchanged. The registry validates the version and refuses to replace different bytes at an existing package/version coordinate.

erDiagram
  accTitle: Registry package model
  accDescr: A package record has many immutable versions, each version is stored as one bpk artifact, and a library artifact contains generated api.json docs.
  PACKAGE ||--o{ VERSION : has
  VERSION ||--|| ARTIFACT : "stored as"
  ARTIFACT ||--o| API_DOCS : contains
  PACKAGE {
    string name
    bool isPublic
  }
  VERSION {
    string semver
  }
  ARTIFACT {
    string checksum
  }

Text equivalent: A package has many versions. Each version is one immutable .bpk artifact, and a library artifact contains its generated api.json docs.

Package source / release plan ownsRegistry / lockfile owns
Package id, targets, and the next artifact versionImmutable package/version storage
Source-workspace dependency pathsExact registry dependency pins in the packed artifact and lockfile

Source .bproj files may use local path dependencies while developing a workspace. A release packer must replace those in the artifact with exact registry dependencies from the coordinated publication plan; installed artifacts never depend on sibling checkout paths. Treat Project.lock as truth for consumer CI reproducibility; chapter 06 workspace material covers multi-project graphs.