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.
- Release
Manifest - What a bundle says about itself.
- Resolved
Release - One selector, frozen to one verified bundle.
- Version
- The version type the registry speaks, which admits a prerelease where
CanonVersionadmits 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 --jsondeclares.
Traits§
- Release
Bundle - One release’s bytes, however they were obtained.
- Release
Resolver - 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.