Skip to main content

Module apply

Module apply 

Source
Expand description

Apply engine — dependency-safe execution of selected update items.

This module implements:

  • ApplyStatus — per-item outcome (success, failed, blocked-by-failure, held-back, skipped)
  • ApplyItem — an item in the apply queue with execution status
  • ApplyEngine — executes selected items in dependency order, batches safe items, isolates failures so unrelated work continues

§Execution Model

  1. Items are sorted in dependency-safe order (topological sort).
  2. Items with isolation_safe: true and no failed dependencies may be batched.
  3. When a guarded item fails, all items that depend on it are marked BlockedByFailure — but unrelated items continue.
  4. Items that were not selected by the user are marked HeldBack.

§Failure Isolation (VAL-UPD-015, VAL-UPD-016)

If component B fails and A depends on B:

  • A is marked BlockedByFailure with a reference to B’s failure.
  • Unrelated component C (no dependency on B) continues and succeeds/fails independently.

Structs§

ApplyEngine
Executes selected update items in dependency-safe order with failure isolation.
ApplyItem
An item that has been processed by the apply engine.
ApplyOptions
Options controlling apply behavior.
ApplySummary
Summary of the apply phase, partitioning all components into success / failed / held_back buckets.
NoOpExecutor
A no-op executor that always succeeds. Used as a default when no real executor is configured.

Enums§

ApplyStatus
Outcome status for a single item after the apply phase.

Traits§

ApplyExecutor
Trait for executing a single component update.