manifest: Make ArduinoCore-API a downloadable blob#339
manifest: Make ArduinoCore-API a downloadable blob#339soburi wants to merge 2 commits intoarduino:mainfrom
Conversation
6353e9d to
6a34e52
Compare
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>
|
@pillo79 |
There was a problem hiding this comment.
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 ofcores/arduino/api/modules/lib/ArduinoCore-API. - Remove the legacy
install.shhelper and thecores/arduino/apisymlink 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.
|
Sometimes I wonder why this is not handled like: Arduino_RouterBridge and Arduino_RPClite Although those other two are probably only needed if you are doing Q development |
|
@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! |
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.
I think this is a great idea, |
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 fetchto prepare for future integration.We will modify the CI script accordingly.