arduino / arduino-cli

Arduino command line tool
https://arduino.github.io/arduino-cli/latest/
GNU General Public License v3.0
4.39k stars 384 forks source link

`core install` uses incorrect vendor folder name #2759

Open jantje opened 6 days ago

jantje commented 6 days ago

Describe the problem

The documentation at https://github.com/arduino/arduino-cli/blob/master/docs/package_index_json-specification.md states:

3rd party vendors should use a single PACKAGE_XXXX

and

name: the folder used for the installed cores.

However when the arduino ide installs the esp8266 version 2.1.2 from the sparkfun provided json file https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json the arduino IDE does not use the package name (esp8266) that contains the platform but uses "sparkfun".

Note that the sparfun provided json file has 2 packages (against the Arduino advice) one is named "Sparkfun" the other is called "esp8266". I'm assuming Arduino uses the name of the first package in the json file which is not compliant with the documentation. Can you clarify this as a bug in the code or a bug in the documentation?

To reproduce

Install the esp8266 version 2.1.2 from the sparkfun provided json file https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json

The platform is installed in packages/sparkfun

Expected behavior

Expected the platform is installed in packages/esp8266

Arduino CLI version

all

Operating system

N/A

Operating system version

windows 11

Additional context

No response

Issue checklist

per1234 commented 6 days ago

Thanks for your report @jantje. I am not able to reproduce it. When I install the platform it is installed to the expected path:

<data directory>/packages/esp8266/hardware/esp8266/2.1.2

I see you specified "all" in the "Arduino CLI version" field of the issue report form. Please tell us the specific version of Arduino CLI you reproduced the fault with. You can get it by running the following command:

arduino-cli version

the sparfun provided json file has 2 packages (against the Arduino advice) one is named "Sparkfun" the other is called "esp8266".

The "3rd party vendors should use a single PACKAGE_XXXX" in the Package Index Specification is a bit ambiguous and you have misinterpreted it. What this is intended to communicate is that a single package should be used for all platforms and tools from a given vendor. For example, Arduino uses the arduino package for all our platforms and tools. However, it is perfectly fine and 100% supported for a package index to contain multiple packages: one for each of the vendors that distribute their platforms and tools via that package index. Arduino even does this in the primary package index since, in addition to being used to distribute Arduino's platforms and tools, this package index is also used to distribute platforms and tools from some of Arduino's partners (each of which have their own package in that one index).

jantje commented 5 days ago

I just tried it again here using Arduino IDE 2.3.3 windows. The sparkfun is installed in C:\Users\jan\AppData\Local\Arduino15\packages\SparkFun\hardware\esp8266\2.1.2

Image

Image