TL;DR
#663 reports that nxplpc silently ignores platform_packages = framework-arduino-lpc8xx@<URL>#<sha> because ArduinoCoreLpc8xx pins the framework URL + commit + sha256 as const &str and the orchestrator never reads platform_packages from env_config. The same const-pin pattern shows up across every other framework package in crates/fbuild-packages/src/library/. This issue audits each one to find which platforms have the same bug and which (if any) already honor platform_packages.
PlatformIO honors the consumer's platform_packages line. Wherever fbuild silently ignores it, downstream bisection workflows (e.g. FastLED/FastLED#3325) are blocked on the fbuild backend.
Audit result: bug exists in 16 / 16 platforms
Every framework package audited follows the same pattern: URL pinned in a const, only-default constructor, orchestrator never reads platform_packages from env_config. Verdict + evidence is on each child issue.
CMSIS (cmsis_framework.rs, cmsis_atmel.rs) and the PlatformIO registry helper (registry.rs) were out of scope — not user-overridable framework packages.
Next step
The audit showed the bug is universal. The fix proposed in #663 (per-package with_override constructor + shared platform_packages parser) needs to generalize: every orchestrator listed above needs the same plumbing. Folding the override-construction into PackageBase so adding it to a new package is a one-line constructor variant — instead of N hand-written with_overrides — is worth considering before implementation begins.
Refs
TL;DR
#663 reports that
nxplpcsilently ignoresplatform_packages = framework-arduino-lpc8xx@<URL>#<sha>becauseArduinoCoreLpc8xxpins the framework URL + commit + sha256 asconst &strand the orchestrator never readsplatform_packagesfromenv_config. The same const-pin pattern shows up across every other framework package incrates/fbuild-packages/src/library/. This issue audits each one to find which platforms have the same bug and which (if any) already honorplatform_packages.PlatformIO honors the consumer's
platform_packagesline. Wherever fbuild silently ignores it, downstream bisection workflows (e.g. FastLED/FastLED#3325) are blocked on the fbuild backend.Audit result: bug exists in 16 / 16 platforms
Every framework package audited follows the same pattern: URL pinned in a
const, only-default constructor, orchestrator never readsplatform_packagesfromenv_config. Verdict + evidence is on each child issue.CMSIS (
cmsis_framework.rs,cmsis_atmel.rs) and the PlatformIO registry helper (registry.rs) were out of scope — not user-overridable framework packages.Next step
The audit showed the bug is universal. The fix proposed in #663 (per-package
with_overrideconstructor + sharedplatform_packagesparser) needs to generalize: every orchestrator listed above needs the same plumbing. Folding the override-construction intoPackageBaseso adding it to a new package is a one-line constructor variant — instead of N hand-writtenwith_overrides — is worth considering before implementation begins.parse_platform_packages_entryhelper +PackageBase-level override (or per-packagewith_override) + orchestrator wiring across all 16 platforms.Refs