Skip to content

Release fbuild 2.3.3 with zccache 1.12.10#770

Merged
zackees merged 1 commit into
mainfrom
codex/release-fbuild-2.3.3-zccache
Jun 23, 2026
Merged

Release fbuild 2.3.3 with zccache 1.12.10#770
zackees merged 1 commit into
mainfrom
codex/release-fbuild-2.3.3-zccache

Conversation

@zackees

@zackees zackees commented Jun 23, 2026

Copy link
Copy Markdown
Member

Summary

  • bump fbuild package version to 2.3.3
  • update managed zccache from 1.12.9 to 1.12.10
  • recover from stale zccache daemons after protocol-version upgrades by stopping/restarting and retrying once

Validation

  • soldr cargo check -p fbuild-build
  • soldr cargo fmt --check
  • soldr cargo test -p fbuild-build zccache --lib
  • soldr cargo test -p fbuild-build ensure_downloads_and_extracts_real_release --lib -- --ignored
  • FBUILD_NO_ZCCACHE=1 soldr cargo test -p fbuild-build --test nxplpc_core_compile_commands -- --ignored

Summary by CodeRabbit

  • Bug Fixes

    • Enhanced compiler cache daemon stability with automatic recovery when protocol mismatches are detected.
  • Chores

    • Updated zccache to version 1.12.10.
    • Version bumped to 2.3.3.

@zackees zackees merged commit 15551a6 into main Jun 23, 2026
87 of 91 checks passed
@coderabbitai

coderabbitai Bot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 0202f084-ccfe-438c-82f5-7990f4e1a0c8

📥 Commits

Reviewing files that changed from the base of the PR and between 225e587 and 89c4953.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (5)
  • Cargo.toml
  • crates/fbuild-build/src/compiler.rs
  • crates/fbuild-build/src/managed_zccache.rs
  • crates/fbuild-build/src/zccache.rs
  • pyproject.toml

📝 Walkthrough

Walkthrough

Adds stale-daemon and protocol-mismatch recovery to zccache: new stop, output_has_protocol_mismatch, and output_has_stale_daemon_error helpers are introduced, ensure_running gains a retry path, and compile_source retries compilation when a mismatch is detected. The pinned managed zccache version is bumped to 1.12.10 and the project version is incremented to 2.3.3.

Changes

zccache Stale Daemon Recovery

Layer / File(s) Summary
New zccache stop and mismatch-detection helpers
crates/fbuild-build/src/zccache.rs
Adds stop (runs zccache stop with Windows no-window flag), output_has_protocol_mismatch, and output_has_stale_daemon_error predicates, plus a unit test covering all detection cases.
ensure_running stale-daemon retry
crates/fbuild-build/src/zccache.rs
On failed zccache start, checks output via output_has_stale_daemon_error; if matched, calls stop, waits 250 ms, and retries zccache start, returning success or a formatted error.
compile_source protocol-mismatch retry
crates/fbuild-build/src/compiler.rs
Stores run_command result in a mutable variable; on failure with compiler_cache set and a stale-daemon output match, stops the daemon, restores it via ensure_running, and reruns run_command.
Managed zccache version bump to 1.12.10
crates/fbuild-build/src/managed_zccache.rs
MANAGED_ZCCACHE_VERSION and RELEASE_TAG updated from 1.12.9 to 1.12.10, targeting new GitHub release assets.

Project Version Bumps to 2.3.3

Layer / File(s) Summary
Cargo.toml and pyproject.toml version to 2.3.3
Cargo.toml, pyproject.toml
[workspace.package].version and [project].version incremented from 2.3.2 to 2.3.3.

Sequence Diagram(s)

sequenceDiagram
    participant CS as compile_source
    participant RC as run_command
    participant ZS as zccache::stop
    participant ER as zccache::ensure_running

    CS->>RC: initial compile
    RC-->>CS: failure (stdout/stderr)
    CS->>CS: output_has_stale_daemon_error?
    alt stale daemon / protocol mismatch
        CS->>ZS: stop stale zccache daemon
        CS->>ER: ensure_running (restart daemon)
        ER->>ER: zccache start fails → output_has_stale_daemon_error?
        ER->>ZS: stop + wait 250ms + retry zccache start
        ER-->>CS: ok
        CS->>RC: retry compile
        RC-->>CS: result
    end
    CS->>CS: write rebuild signature on success
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • FastLED/fbuild#349: Modifies ensure_running in zccache.rs to handle failed zccache start, directly overlapping with the stale-daemon recovery control point changed in this PR.
  • FastLED/fbuild#624: Modifies zccache.rs around ensure_running to capture and propagate structured stdout/stderr on daemon start failures, the same code path extended here.
  • FastLED/fbuild#662: Bumps MANAGED_ZCCACHE_VERSION and its release tag in managed_zccache.rs, the same field updated to 1.12.10 in this PR.

Poem

🐇 A stale old daemon haunted the cache,
Sending protocol errors all over the place.
I added a stop, a wait, and a retry—
No more mismatch gremlins to make the build cry.
Version bumped, zccache fresh and in tune,
Hopping through builds by the light of the moon! 🌙

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/release-fbuild-2.3.3-zccache

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@zackees zackees deleted the codex/release-fbuild-2.3.3-zccache branch June 23, 2026 17:52
@fastled-project-sync fastled-project-sync Bot moved this to Triage in FastLED Tracker Jun 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

1 participant