chore(dev-tools): drop soldr dep; require global soldr install (#251)#256
Conversation
Closes #251. `soldr` is no longer a dependency of the repo-local `fbuild-dev-tools` package. The repo now relies on `soldr` being installed globally on `PATH`, which keeps agent/developer behavior consistent across repos that all consume soldr the same way. **Removed:** - `dependencies = ["soldr>=0.7.4"]` from `ci/dev-tools/pyproject.toml` - `uv run soldr ...` everywhere — replaced by bare `soldr ...`: - actual subprocess calls in `lint`, `ci/lint.py`, `ci/test.py`, `ci/measure_baseline_205.py` - doc strings, READMEs, command examples across crates, benches, docs/, CLAUDE.md, CODEX.md **Added:** - `install_soldr_global()` step in the root `install` script: when `soldr` is missing, bootstraps via `uv tool install soldr` and falls back to a clear pointer at https://github.com/zackees/soldr if uv is unavailable. - Helpful error in `ci/trampoline.py::_soldr_prefix()` when `soldr` is missing: tells the user to `uv tool install soldr` (or use the upstream install script) and links to the soldr repo. - `uv run soldr ...` is now actively REJECTED by the `ci/hooks/tool_guard.py` hook (new `UV_RUN_FORBIDDEN_TARGETS` set covers both `cargo`/`rustc`/etc and `soldr`). Added regression test `test_blocks_uv_run_soldr` to `ci/hooks/test_tool_guard.py`. **Untouched (historical records):** - `DONE.md`, `tasks/lessons.md`, `PLAN.md` — these are point-in-time changelogs / planning docs; leaving their `uv run soldr` references preserves history. **Acceptance criteria (from issue):** - [x] `ci/dev-tools/pyproject.toml` no longer declares `soldr` as a dep. - [x] Helper code still runs `soldr` from PATH. - [x] Missing-soldr error explains that global `soldr` is required. - [x] Missing-soldr error recommends uv/uvx and links to https://github.com/zackees/soldr. Tests: `cargo check --workspace --all-targets`, `cargo fmt --check`, and `python -m unittest test_tool_guard` all green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
Your plan currently allows 1 review/hour. Refill in 4 minutes and 20 seconds. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more review capacity refills, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than trial, open-source, and free plans. In all cases, review capacity refills continuously over time. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (42)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Patch release rolling up fixes and CI/dev-tooling cleanup since v2.2.3. User-facing ----------- - fix(teensy41): link `libarm_cortexM7lfsp_math` so Teensy Audio FFT examples (`Ports/PJRCSpectrumAnalyzer`) link cleanly (#258 / #257). First teensy41 CI green path since mid-April. Internal / CI / dev tooling --------------------------- - chore(deps): adopt upstream soldr/zccache/setup-soldr updates; `zccache-artifact` 1.4.0 -> 1.8; `zccache` PyPI >= 1.8.2; `profile = "minimal"` in rust-toolchain.toml; `prebuild-deps: none` workaround for the setup-soldr cargo-chef regression (#253). - refactor(fbuild-core): migrate to `running-process-core` 3.4 from crates.io, dropping the abandoned-branch git pin (#254). - fix(ci): unblock Formatting + Documentation on main after the loc-gate-refactor split (#255). - chore(dev-tools): drop `soldr` from `ci/dev-tools/pyproject.toml`; require a globally-installed `soldr` everywhere; `uv run soldr ...` is now actively rejected by the tool_guard hook (#256 / #251). Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Closes #251.
Summary
soldris no longer a dependency of the repo-localfbuild-dev-toolspackage. The repo now relies onsoldrbeing installed globally onPATH— consistent with how all FastLED-org repos consume soldr.Changes
Removed
dependencies = [soldr>=0.7.4]fromci/dev-tools/pyproject.toml.uv run soldr ...everywhere it was used at runtime — replaced with baresoldr ...:lint,ci/lint.py,ci/test.py,ci/measure_baseline_205.py(actual subprocess calls)CLAUDE.md,CODEX.md,installAdded
install_soldr_global()step in the rootinstallscript — whensoldris missing, bootstraps viauv tool install soldrand falls back to a clear pointer at https://github.com/zackees/soldr if uv is unavailable.ci/trampoline.py::_soldr_prefix().uv run soldr ...is now actively REJECTED byci/hooks/tool_guard.py(newUV_RUN_FORBIDDEN_TARGETSset coverscargo/rustc/etc. andsoldr). Regression test added (test_blocks_uv_run_soldr).Intentionally untouched (historical)
DONE.md,tasks/lessons.md,PLAN.md— point-in-time records; preserving their originaluv run soldrreferences.Acceptance criteria (from #251)
ci/dev-tools/pyproject.tomlno longer declaressoldras a dep.soldrfromPATH.soldrerror explains that globalsoldris required.soldrerror recommends uv/uvx and links to https://github.com/zackees/soldr.Test plan
soldr cargo check --workspace --all-targets— cleansoldr cargo fmt --all --check— cleanpython -m unittest test_tool_guard— 7/7 pass (includes newtest_blocks_uv_run_soldr)🤖 Generated with Claude Code