On fbuild 2.5.15, a registry lib_deps entry resolves to "status": "unresolved" in platformio.lock and the build then fails because the header was never fetched. Not sure whether registry fetching is simply not implemented yet (the status field reads like it anticipates this) or whether this is a resolver bug — happy to be pointed at the right issue if it's tracked elsewhere.
Repro
platformio.ini:
[env:arduino_avr_uno]
platform = atmelavr
board = uno
framework = arduino
lib_deps = fastled/FastLED@^3.10.3
src/main.cpp:
#include <Arduino.h>
#include <FastLED.h>
CRGB leds[8];
void setup(){ FastLED.addLeds<WS2812B,6,GRB>(leds,8); }
void loop(){ leds[0]=CRGB::Red; FastLED.show(); }
Result
fbuild <dir> sync succeeds and writes:
{
"name": "FastLED",
"source_type": "registry",
"raw": "fastled/FastLED@^3.10.3",
"owner": "fastled",
"version_spec": "^3.10.3",
"status": "unresolved"
}
fbuild <dir> build -e arduino_avr_uno then fails:
src/main.cpp:2:10: fatal error: FastLED.h: No such file or directory
Nothing is downloaded into the project and the build has no way to find the library.
Workaround in use
Design Studio for FastLED git clones FastLED (and ESP32-audioI2S for its SD-card audio player) directly into <project>/lib/ on first build rather than declaring them in lib_deps. That works reliably, but it means our helper carries its own vendoring, pinning and update path for libraries the build tool would otherwise manage.
Why it matters here
This is the workaround with the largest surface for us — it's the difference between declaring a dependency and shipping a package manager. If registry resolution is planned, knowing roughly where it sits would help us decide whether to keep investing in the vendoring path.
Also noting for completeness: source_type: "registry" is the only case tested here. Local paths and vendored lib/ both work fine.
On fbuild 2.5.15, a registry
lib_depsentry resolves to"status": "unresolved"inplatformio.lockand the build then fails because the header was never fetched. Not sure whether registry fetching is simply not implemented yet (thestatusfield reads like it anticipates this) or whether this is a resolver bug — happy to be pointed at the right issue if it's tracked elsewhere.Repro
platformio.ini:src/main.cpp:Result
fbuild <dir> syncsucceeds and writes:{ "name": "FastLED", "source_type": "registry", "raw": "fastled/FastLED@^3.10.3", "owner": "fastled", "version_spec": "^3.10.3", "status": "unresolved" }fbuild <dir> build -e arduino_avr_unothen fails:Nothing is downloaded into the project and the build has no way to find the library.
Workaround in use
Design Studio for FastLED
git clones FastLED (andESP32-audioI2Sfor its SD-card audio player) directly into<project>/lib/on first build rather than declaring them inlib_deps. That works reliably, but it means our helper carries its own vendoring, pinning and update path for libraries the build tool would otherwise manage.Why it matters here
This is the workaround with the largest surface for us — it's the difference between declaring a dependency and shipping a package manager. If registry resolution is planned, knowing roughly where it sits would help us decide whether to keep investing in the vendoring path.
Also noting for completeness:
source_type: "registry"is the only case tested here. Local paths and vendoredlib/both work fine.