Skip to main content

Module release

Module release 

Source
Expand description

The release boundary: what a release is, and how one is obtained.

Two small interfaces sit here and nothing else. A ReleaseBundle answers with a manifest and with blobs by digest, and it does not say where the bytes came from. A ReleaseResolver turns a selector into exactly one verified bundle, once.

They are separate on purpose. Resolution reaches the network and freezes an identity; content access never does. An apply that could resolve a second time could apply a release the plan never described.

Parsing what a bundle carries is the domain’s work, not this layer’s. The boundary hands over bytes; crate::domain::projection says what the projection declaration in them means.

Modules§

crates_io
Read another release from the registry that published it.
embedded
The release this binary carries, behind the bundle interface.
fixture
A directory served as a bundle, for tests.
legacy
Releases that predate the projection declaration.

Structs§

Artifact
One file a bundle carries.
ReleaseManifest
What a bundle says about itself.
ResolvedRelease
One selector, frozen to one verified bundle.
Version
The version type the registry speaks, which admits a prerelease where CanonVersion admits only a released triple. SemVer version as defined by https://semver.org.

Enums§

Provenance
Where a release’s facts came from.
Role
What one artifact is to the engine.
Selector
Which release a caller asked for.

Constants§

MANIFEST_SCHEMA
The machine schema sdd payload --json declares.

Traits§

ReleaseBundle
One release’s bytes, however they were obtained.
ReleaseResolver
Turn a selector into exactly one verified bundle.

Functions§

blob_from
Serve a blob out of a byte map keyed by path.
manifest_from
Build a manifest from a set of logical paths and their bytes.