Skip to content

meta: fbuild build-performance burndown — round 2 (residuals from #942) #974

Closed

Description

@zackees

Context

Rollup of the sub-issues that remained open when the Phase-1 profiling meta #942 was closed. #942 delivered the harness + the major wins (no-op rebuild 108 s → 2.1 s, cold toolchain∥framework overlap, fw-libs workspace-relative, plus correctness/hygiene fixes — 15 PRs). These residuals are genuinely cross-repo, CI-infra, or P3, so they're tracked here rather than blocking the (now-closed) #942.

The same reproducible harness applies: ci/docker-profile/ (#950), NightDriverStrip demo, cold vs hot, fbuild cache not persisted between runs. Compile settings stay frozen — value comes from caching, concurrency, and pipeline overlap only.

Burndown

High value — the real warm-cache win (cross-repo)

CI-infra — makes the guardrails actually enforce

Done

Correctness — rebuild-signature family (continues #951/#956/#957)

Cold-pipeline overlap — further (continues #953/#967)

P3

Acceptance criteria

Decisions

Activity

  1. zackees commented on Jul 6, 2026

    @zackees
    MemberAuthor

    #966 FULLY RESOLVED — all ESP32 firmware compile phases now hit zccache cross-project:

    No zccache-side change was needed; every leak was fbuild-side. Also filed soldr#1387 (clippy-driver bypasses zccache).

    Remaining in #974: #964 (dylint-link CI), #953 (cold-pipeline overlap), #954/#960 (P3).

  2. zackees commented on Jul 6, 2026

    @zackees
    MemberAuthor

    #954 DONE (PR #988): esptool provisioned as a managed standalone binary (tasmota PyInstaller build, deps bundled). Clean-machine ESP32 builds now produce firmware.bin with no user pip install esptool — validated with esptool removed from PATH.

    #964 in progress: root-caused — only 1 of 25 dylint crates (ban_std_pathbuf) had .cargo/config.toml wiring linker=dylint-link; the other 24 emit bare <name>.so so cargo-dylint can't find <name>@<toolchain>.so and the alias-loop workaround never converges. Fix (adding the config to all 24) under local validation.

    #974 status: #970 ✓, #966 ✓ (incl #986 ✓), #954 ✓ — remaining: #964 (validating), #953, #960.

  3. zackees commented on Jul 6, 2026

    @zackees
    MemberAuthor

    #960 resolved (investigation): fbuild intentionally uses pioarduino platform-espressif32@stable (arduino-esp32 3.3.9) and does not honor the espressif32@^6.12.0 pin — a deliberate design choice, not a resolution bug. NightDriverStrip's nvs 0x2000 CSV is stale for 3.x's ≥0x3000 rule; fix is upstream/harness-local, out of fbuild-core scope. Closed.

    #974 status: #970 ✓, #966 ✓ (incl #986 ✓), #954 ✓, #960 ✓. Remaining: #953 (cold-pipeline overlap — implementing+profiling), #964 (dylint-link config fix landed + all 25 lints now enforce; fixing the real violations enforcement surfaced).

  4. zackees commented on Jul 6, 2026

    @zackees
    MemberAuthor

    Remaining work (the last 2 of 6 sub-issues, #964 + #953) captured with precise state + repro recipes in #990. Session paused mid-validation: #964's dylint-link config fix is landed on PR #989 (all 25 lints now enforce) but the surfaced violations still need fixing to green; #953's overlap is coded (clippy/tests green) but not yet profiled/proven.

  5. zackees commented on Jul 7, 2026

    @zackees
    MemberAuthor

    Closing this parent tracker as completed.

    The remaining tail was captured in the follow-up rollup #990, which has now been completed and closed: #990

    Final state:

  6. zackees commented on Jul 7, 2026

    @zackees
    MemberAuthor

    Correction after a broader follow-up audit: this close-out checked the explicit #974 round-2 sub-issues, but it missed related residual tracker debt from the original #942/#974 thread.

    New correction rollup filed here: #992 — #992

    It tracks the still-open/stale #952, #957, and #939 items, plus the PR #991 Windows check cancellation that was only mentioned as a CI note in #990.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    trackingUmbrella or tracking issue

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions