Description
Describe the request
If an Arduino boards platform was installed via core install
(as indicated by it being located under <directories.data>/packages
AKA github.com/arduino/arduino-cli/arduino/cores/packagemanager.PackageManager.PackagesDir
), but that platform is not listed in the primary package index and additional package indexes configured via the board_manager.additional_urls
configuration key:
- Print a warning when this may be significant (e.g.,
core upgrade
) - Make this information available via the gRPC interface (e.g., add an
index_url
field to thePlatform
message)
🙂 The user will be aware that Boards Platform updates are will not be available due to their configuration.
Describe the current behavior
Arduino CLI's core
commands use the Arduino Boards Manager system to provide installation and updates of Arduino boards platforms. Arduino maintains a primary package index that provides all official and partner platforms. A huge number of 3rd party platforms are also available. In order to access these, the user must add the URL to the platform's package index to their Arduino CLI configuration.
After a platform is installed, it remains usable even if the additional package index URL is removed from the Arduino CLI configuration. However, the presence of this URL is required for the valuable update capability to work. Users without an in depth understanding of the fairly complex and esoteric Boards Manager system may not be aware of this and thus feel no need to maintain a list of URLs in their configuration.
There are several scenarios that would make this especially likely to occur:
- The platform was installed via a different tool (Arduino IDE 1.x, Arduino IDE 2.x, and Arduino CLI all use separate preference files).
- An ephemeral configuration mechanism (environment variable or command line flag) was used to configure the URL during the platform installation.
🙁 The problem is not communicated to the user. They may miss out on important advancements made in later releases of the platform or else be confused when the Arduino CLI update capability does not seem to work.
Arduino CLI version
nightly-20220615 Commit: 813cfe7 Date: 2022-06-15T01:36:01Z
Operating system
All
Operating system version
N/A
Additional context
This capability will likely be of greatest value for use in Arduino IDE 2.x, whose users are less likely to understand the technical details of the Boards Manager system, and also are most likely to have missing package index URLs after migrating from Arduino IDE 1.x. However, Arduino CLI is the most appropriate place for the code that will detect this condition, so the work should start here, followed by communicating the information to the IDE user via its GUI.
Related:
- https://forum.arduino.cc/t/post-here-for-ide-2-0-rc/937541/3
- https://forum.arduino.cc/t/suggestion-improve-library-manager/847666/9
- https://forum.arduino.cc/t/board-manager-missing-pololu-boards/698567/3
- https://forum.arduino.cc/t/boardmanager-does-not-know-esp32-8266-boards/698286
- "Additional Boards Manager URLs" preference value not ported from Arduino IDE 1.x arduino-ide#1524
Issue checklist
- I searched for previous requests in the issue tracker
- I verified the feature was still missing when using the latest nightly build
- My request contains all necessary details