Expand description
Resolve the active patch set for one Cabin invocation.
The CLI calls resolve_active_patches after loading the
initial workspace graph and the merged effective config. The
returned ActivePatchSet is the typed input the rest of
the pipeline consumes:
- the artifact pipeline filters out patched names so a patched dep is never re-fetched from the registry;
- the workspace loader stitches the patched manifests in via
crate::PatchedPackageSource; - the lockfile records each entry so
--lockedcan detect stale patch policy; - the metadata view reports each entry deterministically.
Validation runs eagerly: missing paths, missing cabin.toml,
package-name mismatches, and version-requirement mismatches
all surface as PatchResolutionError before any consumer
sees the resolved set. Wording is stable so integration tests
can match substrings.
Structs§
- Active
Patch - One fully-resolved patch entry. Pairs the typed source with
the loaded patch
Packageso downstream consumers do not need to re-parse the patchedcabin.toml. - Active
Patch Set - Container for the active patch set. Ordered by package name for deterministic iteration.
- Config
Patch Input - One config-derived patch entry as the orchestration layer
hands it off to the resolver. The orchestration layer maps
cabin_config::EffectivePatchinto this shape so this crate stays free ofcabin-configdependency. - Patch
Resolution Inputs - Inputs to
resolve_active_patches. Bundling them keeps the call site readable and the function signature stable as new inputs land.
Enums§
- Patch
Resolution Error - Errors produced by
resolve_active_patches. Wording is stable so integration tests can match substrings.
Functions§
- collect_
patched_ versioned_ deps - Versioned dependencies declared by the patched manifests themselves.
- resolve_
active_ patches - Resolve the active patch set deterministically.