Skip to main content

compose

Function compose 

Source
pub fn compose(
    local: &ResolvedProfile,
    sources: &[CompositionInput],
) -> Result<CompositionResult>
Expand description

Compose multiple source configs with a local resolved profile. Local config is always priority 1000. Sources are merged according to policy tiers.

The composition algorithm:

  1. Start with local resolved profile
  2. For each source (sorted by priority ascending):
    • Apply locked items unconditionally
    • Apply required items (union for packages, source wins for files/env)
    • Apply recommended items if accept_recommended && not rejected
    • Apply optional items only if opted in
  3. Apply subscriber overrides on top
  4. Validate security constraints