From 0d294813a48706e35a327fdb4dbbdf766a607c09 Mon Sep 17 00:00:00 2001 From: zackees Date: Fri, 22 May 2026 13:26:47 -0700 Subject: [PATCH 1/3] chore(deps): adopt upstream soldr/zccache/setup-soldr updates - rust-toolchain.toml: add `profile = "minimal"` (matches soldr/zccache) - Cargo.toml: bump zccache-artifact 1.4.0 -> 1.8 (API-compatible per semver) - pyproject.toml: bump zccache>=1.2.13 -> >=1.8.2 - .github/workflows/*.yml (9 files): replace deprecated `target-cache: true` with `target-cache-profile: thin-v1` (modern setup-soldr input) - crates/fbuild-build/tests/flag_escaping_lint.rs: extend allowed_files to cover the post-LOC-split submodule files (methods.rs, build.rs, mod.rs); the recent board.rs / esp32 orchestrator.rs / stm32 orchestrator.rs splits moved canonical define code into renamed files but the lint's allowlist was never updated, breaking the test on main. `running-process-core` is intentionally NOT bumped: published 3.4.x dropped the `Containment` enum and `spawn_with_containment` method that fbuild's git-pinned rev relies on; moving off the pin requires refactoring fbuild-core::{subprocess,containment} onto `ContainedProcessGroup`. See FastLED/fbuild#32. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/acceptance-205.yml | 2 +- .github/workflows/bench-205.yml | 4 +- .github/workflows/check-macos.yml | 2 +- .github/workflows/check-ubuntu.yml | 2 +- .github/workflows/check-windows.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/msrv.yml | 2 +- .github/workflows/template_build.yml | 2 +- .github/workflows/template_native_build.yml | 2 +- Cargo.lock | 51 ++++++++++++++++--- Cargo.toml | 9 ++-- .../fbuild-build/tests/flag_escaping_lint.rs | 8 +++ pyproject.toml | 2 +- rust-toolchain.toml | 1 + uv.lock | 16 +++--- 15 files changed, 79 insertions(+), 28 deletions(-) diff --git a/.github/workflows/acceptance-205.yml b/.github/workflows/acceptance-205.yml index 76a1db49..fed6c667 100644 --- a/.github/workflows/acceptance-205.yml +++ b/.github/workflows/acceptance-205.yml @@ -56,7 +56,7 @@ jobs: with: cache: true build-cache: true - target-cache: true + target-cache-profile: thin-v1 - name: Run ${{ matrix.gate }} acceptance gate run: | diff --git a/.github/workflows/bench-205.yml b/.github/workflows/bench-205.yml index e4b863e3..367c4081 100644 --- a/.github/workflows/bench-205.yml +++ b/.github/workflows/bench-205.yml @@ -40,7 +40,7 @@ jobs: with: cache: true build-cache: true - target-cache: true + target-cache-profile: thin-v1 - name: "Run ${{ matrix.bench }} (target: ${{ matrix.target }})" run: | @@ -69,7 +69,7 @@ jobs: with: cache: true build-cache: true - target-cache: true + target-cache-profile: thin-v1 - name: Checkout FastLED uses: actions/checkout@v6 diff --git a/.github/workflows/check-macos.yml b/.github/workflows/check-macos.yml index 9a7387f1..2a648a97 100644 --- a/.github/workflows/check-macos.yml +++ b/.github/workflows/check-macos.yml @@ -23,7 +23,7 @@ jobs: with: cache: true build-cache: true - target-cache: true + target-cache-profile: thin-v1 - name: Check shell: bash diff --git a/.github/workflows/check-ubuntu.yml b/.github/workflows/check-ubuntu.yml index 240c261f..0f76c08a 100644 --- a/.github/workflows/check-ubuntu.yml +++ b/.github/workflows/check-ubuntu.yml @@ -24,7 +24,7 @@ jobs: with: cache: true build-cache: true - target-cache: true + target-cache-profile: thin-v1 - name: Check run: soldr cargo check --workspace --all-targets diff --git a/.github/workflows/check-windows.yml b/.github/workflows/check-windows.yml index 70b25229..441b2e82 100644 --- a/.github/workflows/check-windows.yml +++ b/.github/workflows/check-windows.yml @@ -23,7 +23,7 @@ jobs: with: cache: true build-cache: true - target-cache: true + target-cache-profile: thin-v1 - name: Check shell: bash diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 5101541c..2e44fa2d 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -23,7 +23,7 @@ jobs: with: cache: true build-cache: true - target-cache: true + target-cache-profile: thin-v1 - name: Build docs run: soldr cargo doc --workspace --no-deps diff --git a/.github/workflows/msrv.yml b/.github/workflows/msrv.yml index 9935a368..28531795 100644 --- a/.github/workflows/msrv.yml +++ b/.github/workflows/msrv.yml @@ -21,7 +21,7 @@ jobs: with: cache: true build-cache: true - target-cache: true + target-cache-profile: thin-v1 toolchain: 1.94.1 - name: Check MSRV diff --git a/.github/workflows/template_build.yml b/.github/workflows/template_build.yml index 035f1652..96e12edc 100644 --- a/.github/workflows/template_build.yml +++ b/.github/workflows/template_build.yml @@ -39,7 +39,7 @@ jobs: with: cache: true build-cache: true - target-cache: true + target-cache-profile: thin-v1 cache-key-suffix: board-${{ inputs.env-name }} - name: Reset zccache daemon after cache warm diff --git a/.github/workflows/template_native_build.yml b/.github/workflows/template_native_build.yml index 30997c9a..91783a26 100644 --- a/.github/workflows/template_native_build.yml +++ b/.github/workflows/template_native_build.yml @@ -58,7 +58,7 @@ jobs: with: cache: true build-cache: true - target-cache: true + target-cache-profile: thin-v1 cache-key-suffix: native-${{ inputs.target }} - uses: actions/setup-python@v6 diff --git a/Cargo.lock b/Cargo.lock index 29192ff2..e907032d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -488,6 +488,30 @@ dependencies = [ "libc", ] +[[package]] +name = "crash-context" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031ed29858d90cfdf27fe49fae28028a1f20466db97962fa2f4ea34809aeebf3" +dependencies = [ + "cfg-if", + "libc", + "mach2", +] + +[[package]] +name = "crash-handler" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2066907075af649bcb8bcb1b9b986329b243677e6918b2d920aa64b0aac5ace3" +dependencies = [ + "cfg-if", + "crash-context", + "libc", + "mach2", + "parking_lot", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -2095,6 +2119,16 @@ version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + [[package]] name = "parking_lot_core" version = "0.9.12" @@ -4080,12 +4114,14 @@ dependencies = [ [[package]] name = "zccache-artifact" -version = "1.4.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4144e1348f83ab3ec55c039e199b0f16dc7afa3d6c0af475debc00023adce425" +checksum = "a85b1a2851359f7f87bdaa44cb35d1d59c7b0dec346da8de466130fb9fbe03dd" dependencies = [ "bincode", "blake3", + "dashmap", + "rayon", "redb", "serde", "serde_json", @@ -4098,11 +4134,14 @@ dependencies = [ [[package]] name = "zccache-core" -version = "1.4.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "694f8a8a46b8552415458eca9a39a0bb36ed28fb0d152374a1f83761abef8222" +checksum = "8a7bc2339b9244683e2e3cf72f338f5a963731370e9f4cd4705023bb1804b5f7" dependencies = [ + "crash-handler", + "libc", "serde", + "serde_json", "thiserror 2.0.18", "tracing", "windows-sys 0.59.0", @@ -4110,9 +4149,9 @@ dependencies = [ [[package]] name = "zccache-hash" -version = "1.4.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eb7ff97b2722055babfb6037757f4d6de41f8e4b838491e31d1eb3f367c318b" +checksum = "1023a805e42f729dac4f19865e6fe365cc6430f30230aaaacb0aa662e2b4b254" dependencies = [ "blake3", "memmap2", diff --git a/Cargo.toml b/Cargo.toml index 90cd6a43..cd8fd34b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -65,14 +65,17 @@ object = { version = "0.36", default-features = false, features = ["read", "std" rusqlite = { version = "0.31", features = ["bundled"] } shell-words = "1" bincode = "1" -zccache-artifact = "1.4.0" +zccache-artifact = "1.8" rayon = "1" tracing-test = "0.2" # Process containment: all subprocess spawns the daemon performs (compilers, # esptool, qemu, simavr, node, npm, …) and any grandchildren they fork must -# die with the daemon. Published to crates.io is pending; pin a git rev. -# See FastLED/fbuild#32. +# die with the daemon. Pinned to a pre-release rev that exposes the +# `Containment` enum / `spawn_with_containment` API. The published +# `running-process-core` 3.4.x dropped those in favor of +# `ContainedProcessGroup` — fbuild will need a containment-layer +# refactor before it can move to crates.io. See FastLED/fbuild#32. running-process-core = { git = "https://github.com/zackees/running-process", rev = "ff9d7972504f7a0dcee0f410274daf3b02e4fcc2", package = "running-process-core" } [profile.dev] diff --git a/crates/fbuild-build/tests/flag_escaping_lint.rs b/crates/fbuild-build/tests/flag_escaping_lint.rs index bc29e646..6616f6f0 100644 --- a/crates/fbuild-build/tests/flag_escaping_lint.rs +++ b/crates/fbuild-build/tests/flag_escaping_lint.rs @@ -130,11 +130,19 @@ fn escaped_quote_usage_is_restricted() { // These files are allowed to contain \\\" because they are the canonical // sources/handlers of escaped-quote define values. + // + // Note: LOC-gate splits (refactor commits 5c90d0e/91f54e4/0cca5f3) moved + // canonical define code from board.rs / orchestrator.rs into submodule + // files (methods.rs, build.rs, mod.rs). Those are listed here too — they + // are still canonical define sources, just renamed. let allowed_files: &[&str] = &[ "board.rs", // canonical define source with \\\" + "methods.rs", // canonical: split out of fbuild-config/src/board.rs (LOC gate) "compiler.rs", // escaping module (prepare_flags_for_exec, write_response_file) "esp32_framework.rs", // SDK defines parser (reads \\\" from disk) "orchestrator.rs", // fallback define construction (same pattern as board.rs) + "build.rs", // canonical: split out of esp32/orchestrator.rs (LOC gate) + "mod.rs", // canonical: split out of stm32/orchestrator.rs (LOC gate) "library_compiler.rs", // response file writer (checks for \\\" to skip double-quoting) ]; diff --git a/pyproject.toml b/pyproject.toml index 3d83d806..95980ce3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ version = "2.2.3" description = "PlatformIO-compatible embedded build tool (Rust implementation)" readme = "README.md" requires-python = ">=3.10" -dependencies = ["zccache>=1.2.13"] +dependencies = ["zccache>=1.8.2"] [dependency-groups] dev = ["fbuild-dev-tools"] diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 32c68eec..857955b9 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,4 @@ [toolchain] channel = "1.94.1" +profile = "minimal" components = ["rustfmt", "clippy"] diff --git a/uv.lock b/uv.lock index 6dfcb756..3988025e 100644 --- a/uv.lock +++ b/uv.lock @@ -16,7 +16,7 @@ dev = [ ] [package.metadata] -requires-dist = [{ name = "zccache", specifier = ">=1.2.13" }] +requires-dist = [{ name = "zccache", specifier = ">=1.8.2" }] [package.metadata.requires-dev] dev = [{ name = "fbuild-dev-tools", editable = "ci/dev-tools" }] @@ -47,13 +47,13 @@ wheels = [ [[package]] name = "zccache" -version = "1.2.13" +version = "1.8.2" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/87/73/4080b898921a865faff716717e1a198846c0ff256f38cbea54b28ea81fbb/zccache-1.2.13-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:25c01b6259118c226d7d9adb8fe854eca74e47d622023685553eb5d16afe69a9", size = 11488674, upload-time = "2026-04-19T09:12:46.718Z" }, - { url = "https://files.pythonhosted.org/packages/0c/3c/4d5f45dabb676bcfdc1f38945675ea8ce06ca47b057cdd755112cf393f5a/zccache-1.2.13-py3-none-macosx_11_0_arm64.whl", hash = "sha256:ca4b87d9110e23848a074a02887a3427868936915c387e9b9ffc7b39aaa38b30", size = 10981829, upload-time = "2026-04-19T09:13:03.894Z" }, - { url = "https://files.pythonhosted.org/packages/ea/1e/f4a222a3addc2227abc067459ad0128a5aaf0179c8d460c8872476bfe1f0/zccache-1.2.13-py3-none-manylinux_2_17_aarch64.whl", hash = "sha256:1cfc01e890ced64349a10ca7fa1973750fdadc6aad027c2a9eab1d5803b08f45", size = 10942113, upload-time = "2026-04-19T09:13:21.216Z" }, - { url = "https://files.pythonhosted.org/packages/f1/74/485a8c67a7a86fa4e7b1032266d761427d4d97de6a70da2e9cb6d4025e3e/zccache-1.2.13-py3-none-manylinux_2_17_x86_64.whl", hash = "sha256:9bdf895a0c24933adb28c57ef99948083d05adbf7220a5f643e4be7c504171c8", size = 11887723, upload-time = "2026-04-19T09:13:39.91Z" }, - { url = "https://files.pythonhosted.org/packages/ac/dc/7f8c8ced3eba832990bef18489bc5b419a4b3e5f1fe14727a5c123d6b9cb/zccache-1.2.13-py3-none-win_amd64.whl", hash = "sha256:7ed67d6bdf92b1e6f142aaf987c72f751824c8fcf9c18fd0401479f46d7ebca1", size = 10713286, upload-time = "2026-04-19T09:14:01.432Z" }, - { url = "https://files.pythonhosted.org/packages/6c/a3/95ebc437fbf581cee66484ccf455f2c0bf5729e264b800646ed1a06ec87c/zccache-1.2.13-py3-none-win_arm64.whl", hash = "sha256:117cd479adaa1c1aeca197fee7d86d9e59845807a82c03e3141bfd23815257cb", size = 9956694, upload-time = "2026-04-19T09:14:17.552Z" }, + { url = "https://files.pythonhosted.org/packages/0b/fb/40cfe8df8c2ac6c250b08845873f98eeca6352325d7af8f10bb28a6faa16/zccache-1.8.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b960c703d05e6bedace35be51db1cf477cd94aeba35afb93c919f1860233d4dd", size = 12400172, upload-time = "2026-05-22T14:27:25.927Z" }, + { url = "https://files.pythonhosted.org/packages/ac/38/78525b2f66d921e1042592300b24107b7f512082a62d00fa769c416cf0d7/zccache-1.8.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:b9b7ce451e7a7c6696c7b8008dcde92dd8cb35fd20a978cc4afe0c05c2c85aa9", size = 11877951, upload-time = "2026-05-22T14:27:29.317Z" }, + { url = "https://files.pythonhosted.org/packages/f8/84/e3f73a89d89d7cd6d443e0de0f0b8d7fdaf50aa2f9ca8196b111b32ded37/zccache-1.8.2-py3-none-manylinux_2_17_aarch64.whl", hash = "sha256:c0d2e62faa7e994ca6889b2864092da6c6ce71de8aa2c2d0637c084434791883", size = 13982209, upload-time = "2026-05-22T14:27:32.007Z" }, + { url = "https://files.pythonhosted.org/packages/03/9a/4a13ae46798ee1b7530ba3a0e9359a36829be7c0ea7b6cd52241bb55e5a4/zccache-1.8.2-py3-none-manylinux_2_17_x86_64.whl", hash = "sha256:cb75a827ea79d275d130775ea7c41a7d035faca4040fb0d8dbdba69f3222d588", size = 14414946, upload-time = "2026-05-22T14:27:35.551Z" }, + { url = "https://files.pythonhosted.org/packages/80/c9/1ab6c223d905320d8130a35bca39128c3950375607ba75beb571a1a8f333/zccache-1.8.2-py3-none-win_amd64.whl", hash = "sha256:6f21c6fb2ecad6b958723be4216127d1c5700bc9d9651d3ce2db57401ba8e88e", size = 11682901, upload-time = "2026-05-22T14:27:38.72Z" }, + { url = "https://files.pythonhosted.org/packages/f4/51/6b84d6f7145b844a01740d36db4cfbdc43aadb911df1a3439fb5f454910c/zccache-1.8.2-py3-none-win_arm64.whl", hash = "sha256:b607217557af61b876ff193b636c5d6165447d67628deefb2f67c0e0c6d8ffd5", size = 10879203, upload-time = "2026-05-22T14:27:41.741Z" }, ] From 1bd3b2b3de060b9ebd6c576dab43d5b013679f90 Mon Sep 17 00:00:00 2001 From: zackees Date: Fri, 22 May 2026 13:44:45 -0700 Subject: [PATCH 2/3] ci(workflows): revert target-cache-profile -> target-cache: true MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The modernized `target-cache-profile: thin-v1` input triggered `build_cache_mode=once`, which pre-populates the target directory before `soldr cargo build -p fbuild-cli -p fbuild-daemon` runs. setup-soldr emits its own warning ("setup-soldr detected a pre-populated shared target directory; a subsequent `soldr cargo build` using the same --target-dir may fail with a missing .rmeta error") and the follow-up build step then fails. ~40 board build jobs regressed on PR #253 because of this. The deprecated `target-cache: true` input still works in setup-soldr@v0 and matches the previously-passing main behavior. The deprecation is just a label — setup-soldr hasn't removed it. Keep using it until we investigate the correct combination of new inputs that doesn't trip the shared-target-dir limitation, in a separate task. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/acceptance-205.yml | 2 +- .github/workflows/bench-205.yml | 4 ++-- .github/workflows/check-macos.yml | 2 +- .github/workflows/check-ubuntu.yml | 2 +- .github/workflows/check-windows.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/msrv.yml | 2 +- .github/workflows/template_build.yml | 2 +- .github/workflows/template_native_build.yml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/acceptance-205.yml b/.github/workflows/acceptance-205.yml index fed6c667..76a1db49 100644 --- a/.github/workflows/acceptance-205.yml +++ b/.github/workflows/acceptance-205.yml @@ -56,7 +56,7 @@ jobs: with: cache: true build-cache: true - target-cache-profile: thin-v1 + target-cache: true - name: Run ${{ matrix.gate }} acceptance gate run: | diff --git a/.github/workflows/bench-205.yml b/.github/workflows/bench-205.yml index 367c4081..e4b863e3 100644 --- a/.github/workflows/bench-205.yml +++ b/.github/workflows/bench-205.yml @@ -40,7 +40,7 @@ jobs: with: cache: true build-cache: true - target-cache-profile: thin-v1 + target-cache: true - name: "Run ${{ matrix.bench }} (target: ${{ matrix.target }})" run: | @@ -69,7 +69,7 @@ jobs: with: cache: true build-cache: true - target-cache-profile: thin-v1 + target-cache: true - name: Checkout FastLED uses: actions/checkout@v6 diff --git a/.github/workflows/check-macos.yml b/.github/workflows/check-macos.yml index 2a648a97..9a7387f1 100644 --- a/.github/workflows/check-macos.yml +++ b/.github/workflows/check-macos.yml @@ -23,7 +23,7 @@ jobs: with: cache: true build-cache: true - target-cache-profile: thin-v1 + target-cache: true - name: Check shell: bash diff --git a/.github/workflows/check-ubuntu.yml b/.github/workflows/check-ubuntu.yml index 0f76c08a..240c261f 100644 --- a/.github/workflows/check-ubuntu.yml +++ b/.github/workflows/check-ubuntu.yml @@ -24,7 +24,7 @@ jobs: with: cache: true build-cache: true - target-cache-profile: thin-v1 + target-cache: true - name: Check run: soldr cargo check --workspace --all-targets diff --git a/.github/workflows/check-windows.yml b/.github/workflows/check-windows.yml index 441b2e82..70b25229 100644 --- a/.github/workflows/check-windows.yml +++ b/.github/workflows/check-windows.yml @@ -23,7 +23,7 @@ jobs: with: cache: true build-cache: true - target-cache-profile: thin-v1 + target-cache: true - name: Check shell: bash diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 2e44fa2d..5101541c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -23,7 +23,7 @@ jobs: with: cache: true build-cache: true - target-cache-profile: thin-v1 + target-cache: true - name: Build docs run: soldr cargo doc --workspace --no-deps diff --git a/.github/workflows/msrv.yml b/.github/workflows/msrv.yml index 28531795..9935a368 100644 --- a/.github/workflows/msrv.yml +++ b/.github/workflows/msrv.yml @@ -21,7 +21,7 @@ jobs: with: cache: true build-cache: true - target-cache-profile: thin-v1 + target-cache: true toolchain: 1.94.1 - name: Check MSRV diff --git a/.github/workflows/template_build.yml b/.github/workflows/template_build.yml index 96e12edc..035f1652 100644 --- a/.github/workflows/template_build.yml +++ b/.github/workflows/template_build.yml @@ -39,7 +39,7 @@ jobs: with: cache: true build-cache: true - target-cache-profile: thin-v1 + target-cache: true cache-key-suffix: board-${{ inputs.env-name }} - name: Reset zccache daemon after cache warm diff --git a/.github/workflows/template_native_build.yml b/.github/workflows/template_native_build.yml index 91783a26..30997c9a 100644 --- a/.github/workflows/template_native_build.yml +++ b/.github/workflows/template_native_build.yml @@ -58,7 +58,7 @@ jobs: with: cache: true build-cache: true - target-cache-profile: thin-v1 + target-cache: true cache-key-suffix: native-${{ inputs.target }} - uses: actions/setup-python@v6 From 2f7f1a3588e6467e16ffa112e30a69a46873740b Mon Sep 17 00:00:00 2001 From: zackees Date: Fri, 22 May 2026 13:58:29 -0700 Subject: [PATCH 3/3] ci(workflows): disable setup-soldr prebuild-deps (workaround upstream regression) The latest setup-soldr (v0 -> 33e221e via PR #140) defaults `prebuild-deps: cargo-chef` ON. cargo-chef pre-warms `target/deps/` before the user's `cargo build`, but on fbuild's CI the prebuild leaves the shared target directory in a state that conflicts with the follow-up `soldr cargo build -p fbuild-cli -p fbuild-daemon` step (missing .rmeta errors). setup-soldr itself emits a warning about this exact failure mode and exposes `prebuild-deps: none` as the documented escape hatch. Apply `prebuild-deps: none` everywhere we invoke setup-soldr (10 workflow files, 11 invocations including bench-205's two blocks). This is a stop-gap. The proper fix is upstream: either prebuild-deps should not corrupt the target dir when subsequent `cargo build -p` calls follow, or fbuild should switch to a separate target-dir for the daemon/cli build. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/acceptance-205.yml | 1 + .github/workflows/bench-205.yml | 2 ++ .github/workflows/check-macos.yml | 1 + .github/workflows/check-ubuntu.yml | 1 + .github/workflows/check-windows.yml | 1 + .github/workflows/docs.yml | 1 + .github/workflows/fmt.yml | 1 + .github/workflows/msrv.yml | 1 + .github/workflows/template_build.yml | 1 + .github/workflows/template_native_build.yml | 1 + 10 files changed, 11 insertions(+) diff --git a/.github/workflows/acceptance-205.yml b/.github/workflows/acceptance-205.yml index 76a1db49..5c38a883 100644 --- a/.github/workflows/acceptance-205.yml +++ b/.github/workflows/acceptance-205.yml @@ -57,6 +57,7 @@ jobs: cache: true build-cache: true target-cache: true + prebuild-deps: none - name: Run ${{ matrix.gate }} acceptance gate run: | diff --git a/.github/workflows/bench-205.yml b/.github/workflows/bench-205.yml index e4b863e3..c8bfbdb3 100644 --- a/.github/workflows/bench-205.yml +++ b/.github/workflows/bench-205.yml @@ -41,6 +41,7 @@ jobs: cache: true build-cache: true target-cache: true + prebuild-deps: none - name: "Run ${{ matrix.bench }} (target: ${{ matrix.target }})" run: | @@ -70,6 +71,7 @@ jobs: cache: true build-cache: true target-cache: true + prebuild-deps: none - name: Checkout FastLED uses: actions/checkout@v6 diff --git a/.github/workflows/check-macos.yml b/.github/workflows/check-macos.yml index 9a7387f1..2af02e8e 100644 --- a/.github/workflows/check-macos.yml +++ b/.github/workflows/check-macos.yml @@ -24,6 +24,7 @@ jobs: cache: true build-cache: true target-cache: true + prebuild-deps: none - name: Check shell: bash diff --git a/.github/workflows/check-ubuntu.yml b/.github/workflows/check-ubuntu.yml index 240c261f..d41d54cc 100644 --- a/.github/workflows/check-ubuntu.yml +++ b/.github/workflows/check-ubuntu.yml @@ -25,6 +25,7 @@ jobs: cache: true build-cache: true target-cache: true + prebuild-deps: none - name: Check run: soldr cargo check --workspace --all-targets diff --git a/.github/workflows/check-windows.yml b/.github/workflows/check-windows.yml index 70b25229..1f2bf29d 100644 --- a/.github/workflows/check-windows.yml +++ b/.github/workflows/check-windows.yml @@ -24,6 +24,7 @@ jobs: cache: true build-cache: true target-cache: true + prebuild-deps: none - name: Check shell: bash diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 5101541c..380d9c33 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,6 +24,7 @@ jobs: cache: true build-cache: true target-cache: true + prebuild-deps: none - name: Build docs run: soldr cargo doc --workspace --no-deps diff --git a/.github/workflows/fmt.yml b/.github/workflows/fmt.yml index 2943e0ca..e8efcc97 100644 --- a/.github/workflows/fmt.yml +++ b/.github/workflows/fmt.yml @@ -22,5 +22,6 @@ jobs: cache: true build-cache: true target-cache: false + prebuild-deps: none - name: Check formatting run: soldr cargo fmt --all -- --check diff --git a/.github/workflows/msrv.yml b/.github/workflows/msrv.yml index 9935a368..4b296398 100644 --- a/.github/workflows/msrv.yml +++ b/.github/workflows/msrv.yml @@ -22,6 +22,7 @@ jobs: cache: true build-cache: true target-cache: true + prebuild-deps: none toolchain: 1.94.1 - name: Check MSRV diff --git a/.github/workflows/template_build.yml b/.github/workflows/template_build.yml index 035f1652..45e5f7fc 100644 --- a/.github/workflows/template_build.yml +++ b/.github/workflows/template_build.yml @@ -40,6 +40,7 @@ jobs: cache: true build-cache: true target-cache: true + prebuild-deps: none cache-key-suffix: board-${{ inputs.env-name }} - name: Reset zccache daemon after cache warm diff --git a/.github/workflows/template_native_build.yml b/.github/workflows/template_native_build.yml index 30997c9a..bab8a55d 100644 --- a/.github/workflows/template_native_build.yml +++ b/.github/workflows/template_native_build.yml @@ -59,6 +59,7 @@ jobs: cache: true build-cache: true target-cache: true + prebuild-deps: none cache-key-suffix: native-${{ inputs.target }} - uses: actions/setup-python@v6