Skip to content

audit: arduino_api — does platform_packages override work? (parent #664) #666

Closed

Description

@zackees

Parent: #664 (full context, scope, motivation).

What to check

  1. Open crates/fbuild-packages/src/library/arduino_api.rs — confirm the framework URL / commit / sha256 are pinned as const &str and that the only public constructor takes no override.
  2. Open the orchestrator at crates/fbuild-build/src/ — does it consult config.get_env_config(env_name)? for a platform_packages entry naming this framework, and pass the URL+ref through to a with_override constructor? Or does it only ever call the default constructor?
  3. Reply on this issue with:
    • bug exists — if the orchestrator never reads platform_packages, plus file:line for both the const URL pin and the call site. (may be consumed by multiple orchestrators — search for ArduinoApi::)
    • fixed / no bug — if an override path exists, plus file:line showing the lookup + override constructor.

Reference

#663 is the original report of this pattern (nxplpc). #664 lists every framework package being audited. Use the same evidence shape: file:line for the const URL pin and for the orchestrator call site.

Activity

  1. zackees commented on Jun 20, 2026

    @zackees
    MemberAuthor

    VERDICT: bug exists

    EVIDENCE:

    • arduino_api.rs:18-19 — const ARDUINO_API_URL: &str = "https://github.com/arduino/ArduinoCore-API/archive/refs/tags/1.5.2.tar.gz"
    • arduino_api.rs:29 — only entry point pub fn ensure_arduino_api(core_dir: &Path) -> Result<()> takes no override parameter
    • avr_framework.rs:152, 194 — call sites never read platform_packages before invoking
    • silabs_core.rs:101, 119 — call sites never read platform_packages before invoking
    • arduino_mbed_core.rs:174, 192 — call sites never read platform_packages before invoking

    NOTES: arduino_api is hardcoded to 1.5.2; no constructor accepts URL/version/sha256 overrides. fbuild silently ignores platform_packages = ArduinoCore-API@<URL>#<sha> in platformio.ini.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions