Uh oh!
There was an error while loading. Please reload this page.
refactor(usb): source compile identities from boards registry - #1061
Conversation
Uh oh!
There was an error while loading. Please reload this page.
Important Review skippedToo many files! This PR contains 360 files, which is 210 over the limit of 150. To get a review, narrow the scope: Upgrade to a paid plan to raise the limit. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (360)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ 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 |
…d absent (#55) PlatformIO platform builders fall back to build.hwids[0] for USB_VID/USB_PID when a board manifest has no explicit build.vid/pid (atmelsam is the canonical case). The extractor only honored explicit keys, so every hwids-only manifest published primary_compile_identity: null — and consumers that source USB_VID/USB_PID from this registry (FastLED/fbuild#1061) fail to compile USB cores such as ArduinoCore-samd USBCore.cpp, breaking all SAMD board builds in fbuild CI. Mirror the hwids[0] fallback and tag that identity with the compile purpose so validate_profiles accepts it as primary. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…t allowlist, fmt toolchain, SAMD USB defines) (#1084) * test(ci): align policy tests with blessed workflows and non-Windows hosts The xwin CRT fixes changed template_native_build.yml's Windows MSVC branches to 'soldr --no-cache build' without updating the pyo3 policy test, failing Check Windows on every main commit since. The picotool combined-failure test asserted the Windows-only WinUSB hint on every platform, failing Check Ubuntu/macOS. Update the policy expectations and make format_failure platform-injectable so both hint variants are asserted on every host. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs(serial): unlink rustdoc references to private consts ENVIRONMENT_TO_VCOM and BOARD_FINGERPRINTS are private; intra-doc links to them fail 'cargo doc -D warnings' (the Documentation job) from fbuild-cli and fbuild-serial. Plain code spans instead. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * chore(dylint): allowlist rp2040_picotool.rs for ban_std_pathbuf The module was split out of rp2040_pqt.rs (which is allowlisted) without carrying an allowlist entry, failing the Dylint job on every main commit. NormalizedPath migration remains tracked by the allowlist-shrink effort. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(ci): provision rustfmt for the pinned toolchain in the fmt job setup-soldr installs the pinned toolchain with profile=minimal, which omits rustfmt; on toolchain-cache misses 'cargo fmt' silently fell back to the runner's newer stable rustfmt and failed with diffs the pinned 1.94.1 does not produce. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat(config): PlatformIO USB define parity for boards without registry vid/pid #1061 sources USB_VID/USB_PID from the boards registry; complement it with the rest of PlatformIO's USB define surface: USB_PRODUCT/USB_MANUFACTURER from board data (gated on usb_product, quotes stripped, atmelsam arduino-common.py semantics), build.hwids parsing for project-local PlatformIO-format manifests (bundled snapshots stay hwids-free — guard extended), usb_product strings for the five bundled SAMD boards, and SAM fingerprint coverage so define changes invalidate cached artifacts. The SAMD CI healing itself ships via the registry (FastLED/boards#55). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(ci): pin formatting style and test quote expectations * style: format workspace with pinned rustfmt --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Advances #1047 and #1049.\n\n- consume digest-verified FastLED/boards primary compile identities\n- validate that each primary is exact and belongs to the board compile set\n- remove the MCU-to-VID heuristic\n- strip all 349 affected bundled board snapshots (516 VID/PID fields; zero remain)\n- stop validation/enrichment from copying PlatformIO hwids into fbuild assets\n- preserve explicit project-local overrides and ESP32 framework-owned defines\n- add live Pico 1/Pico 2 publication and compile-define acceptance\n\nUpstream dependency merged and published: FastLED/boards#54.\n\nValidation:\n- fbuild-core/config suites pass\n- strict clippy passes for both crates\n- live published profiles: rpipico=2e8a:000a, rpipico2=2e8a:000f, rpipicow=2e8a:f00a\n- live registry-to-Pico define test passes\n- independent review approved with no blockers