When a compile supplies a 'libraries' manifest, _resolve_library_components merges a USER-installed library only if it's declared in that set. A sketch therefore never picks up an unrelated library from the shared dir (another user's install, or a same-named clash) — the manifest is the resolution scope. - _resolve_library_components(allowed_libraries): gate user-lib merges on manifest membership; match by folder name OR library.properties name=, normalised (display name vs on-disk folder differ by separators/case). Core/bundled libs are never gated. None = legacy scan-all (unchanged). - Threaded through compile() -> _compile_in_dir. - compile.py: CompileRequest.libraries; folded into the async dedup _job_key so a different manifest doesn't dedup to a job built with another. Opt-in: omitting 'libraries' preserves current behaviour exactly. Regression: test/backend/unit/test_espidf_core_first.py::TestManifestScope |
||
|---|---|---|
| .. | ||
| autosearch | ||
| backend | ||
| esp32 | ||
| esp32-emulator | ||
| esp32_cam | ||
| multi_board | ||
| multi_board_esp32 | ||
| pi3_console_boot | ||
| pi3_protocols | ||
| pi_arduino_serial | ||
| pico_doom_demo | ||
| test-esp32-cam | ||
| test-esp32-p4 | ||
| test_100_days | ||
| test_Raspberry_Pi_Pico_W | ||
| test_chip_backend_runtime | ||
| test_circuit | ||
| test_custom_chips | ||
| test_custom_chips_boards | ||
| test_epaper | ||
| test_intel | ||
| test_micropython_i2c_minimal | ||
| test_micropython_i2c_ssd1306_repro | ||
| test_micropython_wifi_trace | ||
| docker-errors-2026-04-19.md | ||