You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CompileBackend::{Wrapped, Embedded} enum held on a daemon state struct
in fbuild-daemon. Resolved once at daemon start from FBUILD_ZCCACHE_EMBEDDED.
New crates/fbuild-daemon/src/zccache_embedded.rs wrapping ZccacheService with fbuild's identity defaults + ~/.fbuild/<mode>/cache/
root. Construct the service at daemon startup when embedded mode is on.
Bump MANAGED_ZCCACHE_VERSION to match whatever revision the embedded
library dep pins, so wrapped + embedded share an artifact format.
fbuild-build continues to call into the wrapper today; no per-compile
routing change yet (that's Phase 2).
docs/ note documenting the env var.
Out of scope (other phases)
Per-compile dispatch through the embedded service → Phase 2 (#TBD)
soldr cargo clippy --workspace --all-targets -- -D warnings clean
with and without the feature.
Default uv run test green — no behavior change without the flag.
Smoke test: starting the daemon with FBUILD_ZCCACHE_EMBEDDED=1
constructs the embedded service without panicking, and the daemon
logs which backend is active.
Sub-issue of #789 (zccache embedded migration).
Scope
Land the opt-in scaffolding. Default behavior unchanged — wrapper path
stays the default, embedded mode reached only via
FBUILD_ZCCACHE_EMBEDDED=1.Deliverables
embeddedCargo feature onfbuild-buildpulling in thezccachelibrary as a git-pinned dep (no submodule yet — see perf(zccache): migrate from managed wrapper binary to embedded ZccacheService in fbuild-daemon #789"vendoring" discussion).
CompileBackend::{Wrapped, Embedded}enum held on a daemon state structin
fbuild-daemon. Resolved once at daemon start fromFBUILD_ZCCACHE_EMBEDDED.crates/fbuild-daemon/src/zccache_embedded.rswrappingZccacheServicewith fbuild's identity defaults +~/.fbuild/<mode>/cache/root. Construct the service at daemon startup when embedded mode is on.
MANAGED_ZCCACHE_VERSIONto match whatever revision the embeddedlibrary dep pins, so wrapped + embedded share an artifact format.
fbuild-buildcontinues to call into the wrapper today; no per-compilerouting change yet (that's Phase 2).
docs/note documenting the env var.Out of scope (other phases)
zccache fpshellouts → Phase 3 (#TBD)managed_zccache.rs/ wrapper code path → Phase 4 (#TBD)Acceptance
soldr cargo build --workspaceclean (default features).soldr cargo build --workspace --features fbuild-build/embeddedclean.soldr cargo clippy --workspace --all-targets -- -D warningscleanwith and without the feature.
uv run testgreen — no behavior change without the flag.FBUILD_ZCCACHE_EMBEDDED=1constructs the embedded service without panicking, and the daemon
logs which backend is active.