struct

Bootstrap::BuildPlanOverrides

Inherits JSON::Serializable < Struct < Value < Object

Represents user-supplied, runtime-only overrides that can be applied to an embedded BuildPlan JSON without recompiling the tooling.

Intended workflow:

  1. Run bq2 sysroot-runner and observe a failure.
  2. Edit an overrides JSON (default: /var/lib/sysroot-build-overrides.json) to add flags/env for the failing phase/package.
  3. Re-run the runner for just the affected phase/package.
  4. Once stable, back-port the overrides into SysrootBuilder.phase_specs so the build becomes reproducible from scratch.

Constructors

from_diff(base_plan : BuildPlan, target_plan : BuildPlan) : BuildPlanOverrides

Returns overrides that transform base_plan into target_plan.

Raises if differences cannot be represented via runtime overrides.

Source
new(phases : Hash(String, PhaseOverride) = {} of String => PhaseOverride)
Source
new(*, __pull_for_json_serializable pull : JSON::PullParser)
Source

Instance methods

apply(plan : BuildPlan) : BuildPlan

Apply the overrides to plan and return a new plan.

Raises when the overrides reference unknown phases or unknown packages in a phase package allowlist.

Source
phases
Source