Skip to content

fix(build): project-relative board_build.partitions CSV not found (resolved against framework tools dir) #955

Description

@zackees

Context

NightDriverStrip sets board_build.partitions = config/partitions_custom_noota.csv (project-relative, standard PlatformIO semantics). Every build in the #942 baseline logs:

WARN fbuild_build::esp32::orchestrator::boot_artifacts: no partitions source: csv=/root/.fbuild/prod/cache/platforms/framework-arduinoespressif32/.../esp32-core-3.3.9/tools/partitions/config/partitions_custom_noota.csv gen_tool=.../gen_esp32part.py

i.e. the CSV path is resolved only against the framework's tools/partitions/ directory. Consequences:

  1. Wrong partition table: the custom table is silently ignored (build falls back), so flashed layouts won't match the project's config — user-facing correctness bug.
  2. Perf side-effect: partitions.bin is missing from the final artifact set, so the ESP32 fast-path fingerprint is never persisted ("skipping ESP32 fast-path persistence because final artifacts are incomplete") and the whole-build short-circuit (perf(build): no-change rebuild recompiles the entire sketch + core variant (~103s; should be seconds) #951) can never engage for such projects.

Proposal

Resolve board_build.partitions first against the project dir (PlatformIO behavior), then fall back to the framework tools/partitions/ directory for named built-ins (default.csv, huge_app.csv, ...). Emit a hard error (not a WARN) when an explicitly configured CSV is not found anywhere.

Acceptance criteria

Decisions

  • Severity: HIGH — silently flashing the wrong partition table is a correctness bug beyond the perf impact.

Part of #942 (blocks the #951 fast-path fingerprint persistence for projects with custom partitions).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions