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

@zackeeszackees 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 mainJun 23, 2026
87 of 91 checks passed
@coderabbitai

coderabbitaiBot 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
Sign up for freeto 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

@zackees