Skip to content

manifest: Make ArduinoCore-API a downloadable blob#339

Open
soburi wants to merge 2 commits intoarduino:mainfrom
soburi:api_blob
Open

manifest: Make ArduinoCore-API a downloadable blob#339
soburi wants to merge 2 commits intoarduino:mainfrom
soburi:api_blob

Conversation

@soburi
Copy link

@soburi soburi commented Feb 15, 2026

In the Zephyr Native build, licenses other than Apache2 are not included
by default, so we will introduce a method to retrieve the file using
west blobs fetch to prepare for future integration.
We will modify the CI script accordingly.

@soburi soburi force-pushed the api_blob branch 5 times, most recently from 6353e9d to 6a34e52 Compare February 15, 2026 04:54
In the Zephyr Native build, licenses other than Apache2 are not included
by default, so we will introduce a method to retrieve the file using
`west blobs fetch` to prepare for future integration.
We will modify the CI script accordingly.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
With the introduction of blobs, the `cores/arduino/api` symlink is
no longer necessary, so delete it.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
@soburi soburi marked this pull request as ready for review February 15, 2026 05:25
Copilot AI review requested due to automatic review settings February 15, 2026 05:25
@soburi
Copy link
Author

soburi commented Feb 15, 2026

@pillo79
I introduced this because it was required at https://github.com/zephyrproject-rtos/ArduinoCore-zephyr, but I would like to ask you to confirm whether it fit to arduino's CI.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR transitions the ArduinoCore-API dependency from a checked-out repository/symlink setup to Zephyr’s west blobs fetch mechanism, so license-incompatible upstream headers/sources are downloaded on demand.

Changes:

  • Add a blobs: manifest to the module metadata and commit the upstream LGPL license text.
  • Update build/packaging logic (CMake + packaging scripts + CI workflows) to consume API sources from zephyr/blobs/ArduinoCore-API/ instead of cores/arduino/api / modules/lib/ArduinoCore-API.
  • Remove the legacy install.sh helper and the cores/arduino/api symlink approach.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
zephyr/module.yml Renames module and introduces a blobs: list to fetch ArduinoCore-API files via west blobs fetch.
zephyr/blobs/ArduinoCore-API/LICENSE Adds LGPL-2.1 license text for the fetched third-party blobs.
install.sh Removes manual clone/symlink installer for ArduinoCore-API.
extra/package_core.sh Packages blobs by transforming zephyr/blobs/ArduinoCore-API into cores/arduino in the final archive.
extra/bootstrap.sh Fetches blobs during bootstrap (now using --auto-accept).
extra/artifacts/_common.inc Includes the blobs’ api/ directory in packaged artifacts.
cores/arduino/api Removes the ArduinoCore-API symlink placeholder.
cores/CMakeLists.txt Removes direct inclusion/compilation of ArduinoCore-API from the cores/ subdir.
CMakeLists.txt Adds include dirs and ArduinoCore-API source compilation from the blobs directory.
.github/workflows/package_core.yml Archives/extracts the blob-based API directory instead of the old symlink path.
.github/workflows/format_check.yml Removes ignore rule for the deleted cores/arduino/api/** path.
.github/workflows/build.yml Adds a CI step to fetch blobs before building samples.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@KurtE
Copy link

KurtE commented Feb 15, 2026

Sometimes I wonder why this is not handled like: Arduino_RouterBridge and Arduino_RPClite
and added to .gitmodules

Although those other two are probably only needed if you are doing Q development

@pillo79
Copy link

pillo79 commented Feb 16, 2026

@soburi This upstream update caught my eye recently, it's a great idea! I was already working on something like it; my version uses the release zip archive, not each individual file, to allow for "seamless" updates. Will post my PR soon and tag you for review!

@soburi
Copy link
Author

soburi commented Feb 21, 2026

Sometimes I wonder why this is not handled like: Arduino_RouterBridge and Arduino_RPClite
and added to .gitmodules

This stems from our plan to support using this as a Zephyr module. In that context, we can’t include GPL-licensed source code in the module itself, to stay aligned with Zephyr’s licensing rules. Using west blobs makes it explicit that any such code is fetched separately by the user.

@soburi This upstream update caught my eye recently, it's a great idea! I was already working on something like it; my version uses the release zip archive, not each individual file, to allow for "seamless" updates. Will post my PR soon and tag you for review!

I think this is a great idea,
but when I tried it, I noticed a few issues.
After doing a west blobs fetch, I expected it to be ready to use, but with zip it requires an extra step.
I'll leave it as it is for now.

@CLAassistant
Copy link

CLAassistant commented Mar 18, 2026

CLA assistant check
All committers have signed the CLA.

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

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants