Skip to content

chore(deps): require zccache>=1.15.8 - #4937

Open
zackees wants to merge 1 commit into
masterfrom
feat/zccache-pin-1.15.8
Open

zackees wants to merge 1 commit into
masterfrom
feat/zccache-pin-1.15.8

Conversation

@zackees

@zackees zackees commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

Symptom

The Windows unit tests windows job logs this while building the FastLED engine in debug mode (run 40472340544; ~10 occurrences, six of them in the first parallel compile burst of the engine build, then one per later test target):

zccache[warn][S]: cannot connect to daemon at \\.\pipe\zccache-runneradmin-v1.15.8: I/O error: cannot connect to daemon at \\.\pipe\zccache-runneradmin-v1.15.8: The system cannot find the file specified. (os error 2); retrying via ephemeral session

Every occurrence is followed by a successful compile and the job passes; there is no FAILED/refusing to run uncached fallout in this run.

What the pin was

  • pyproject.toml: zccache>=1.15.6
  • pyproject.toml: fbuild>=2.5.45
  • CI runs ./install → uv sync with no committed uv.lock, so it resolved fbuild==2.5.47 and zccache==1.15.8 (the meson marker recorded zccache 1.15.8, and that is the version in the pipe name). The v1.15.8 in the warning is the resolved version, not a hard pin.

What it now is

zccache>=1.15.8 — the only change in this PR.

Why 1.15.8, and what this does not fix

The meson functional minimum stays at 1.15.6 (ci/meson/meson_setup_execute.py), because that is the PCH-snapshot feature requirement; only the dependency floor moves. fbuild's floor is unchanged: current fbuild (2.5.47) already embeds zccache 1.15.8, and raising the fbuild floor would not affect the venv zccache binary that the native build wraps.

Reproduced / not reproduced

Reproduced on this Linux machine with the new pin:

  • uv sync moved the venv from zccache 1.15.6 to 1.15.8 (zccache --version → zccache 1.15.8).
  • Direct wrapper compile, cold and warm: exit 0, object produced.
  • The warning's exact code path: with an isolated ZCCACHE_CACHE_DIR, ran zccache session-start, killed the isolated daemon, then ran ZCCACHE_SESSION_ID=... zccache gcc -c .... It emitted
    zccache[warn][S]: cannot connect to daemon at /tmp/.../daemon-v1.15.8.sock: ... Connection refused (os error 111); retrying via ephemeral session
    and still exited 0 with the object produced. This is the same client fallback as the Windows message; the Windows named pipe and its os error 2 could not be reproduced here.

Not reproduced: the Windows named pipe itself, the GitHub runner's daemon disappearing between session-start and the first parallel compiles, and any daemon/pipe fix.

Validation

  • uv sync → zccache==1.15.8
  • bash lint → exit 0
  • bash compile wasm --examples Blink → exit 0
  • direct zccache wrapper cold/warm compile → exit 0
  • bash test --cpp deliberately not run; the orchestrator runs it once at the end.

Summary by CodeRabbit

  • Chores
    • Updated the minimum version of the build caching tool required by the project. Existing setups may need to update that tool before building. No user-facing features or fixes are included in this change.

Raise the zccache floor from 1.15.6 to 1.15.8, the latest PyPI/crates.io
release. 1.15.8 is the version Windows CI already resolves and the version
that emits the cold-start "retrying via ephemeral session" warning, so this
does not silence that warning: the related Windows daemon-pipe failure class
is still open upstream (forge-ci/zccache#1976). Keeping the floor at 1.15.8
stops any environment from resolving back to 1.15.6, the release named in
that report, and picks up 1.15.7's same-size-edit stale-hit fix plus
1.15.8's Windows destination-delivery retry.
@coderabbitai

coderabbitai Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 1d53e32 and 4a57156.

Files selected for processing: 1
  • pyproject.toml

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 6 remain after this review.

Walkthrough

The project raises the minimum zccache version from 1.15.6 to 1.15.8. It also adds release notes about fixes in versions 1.15.7 and 1.15.8, and a Windows daemon-pipe warning that remains unresolved.

Changes: zccache Version Update

Layer / File(s) Summary
Release notes and version requirement
pyproject.toml
The release notes describe zccache fixes in versions 1.15.7 and 1.15.8, and note that the Windows daemon-pipe warning remains unresolved. The minimum dependency version changes to 1.15.8.

Priority: Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Other

Possibly related issues

  • FastLED/FastLED issue 3129: The dependency update and release notes cover zccache version behavior included in the broader audit.
  • FastLED/fbuild issue 1757: The minimum version update prevents resolution to 1.15.6 and includes notes about a Windows destination-delivery retry, but the change does not establish that it resolves the reported intermittent cache misses.
Merge Risk: Minimal · up to 4a571

This only raises the minimum allowed zccache version to 1.15.8, which matches what CI already resolves. The Windows daemon-pipe warning is documented as still unresolved and is not made worse by this change. No merge-blocking risk was found.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title "chore(deps): require zccache>=1.15.8" matches the sole functional change in the changeset: the minimum zccache dependency floor in pyproject.toml is raised from 1.15.6 to 1.15.8. It is spec…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within survi…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title "chore(deps): require zccache>=1.15.8" matches the sole functional change in the changeset: the minimum zccache dependency floor in pyproject.toml is raised from 1.15.6 to 1.15.8. It is specific, concise, and follows conventional commit style. It does not mention the unresolved Windows daemon-pipe warning, but the PR objectives state that this PR does not address that issue, so omitting it is appropriate.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

This branch has not been deployed

No deployments
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

⌂ Proxy