Description
Describe the problem
arduino-cli core list --format json
outputs a machine readable list of the installed boards platforms.
If no platforms are installed, the logical behavior is to output an empty array ([]
).
🐛 The behavior recently changed to outputting the inappropriate null
instead of an empty array. This will break any code that parses this output which was designed for the previous behavior, when run in an environment where no platforms are installed.
To reproduce
Set Up
$ export ARDUINO_DIRECTORIES_DATA="/tmp/empty/arduino-cli-directories/data" # Set up an environment where no platforms are installed.
$ export ARDUINO_DIRECTORIES_USER="/tmp/empty/arduino-cli-directories/user"
Demo
$ git checkout ad5dacca220162cd5dd736ef89d341f9b82137a0^1 # Checkout the last commit before the regression.
HEAD is now at eb8f2f246 [skip-changelog] testsuite: added mocked serial monitor for integration tests (#2379)
$ task build
[...]
$ ./arduino-cli version
arduino-cli.exe Version: git-snapshot Commit: eb8f2f246 Date: 2024-08-13T04:23:41Z
$ ./arduino-cli --format json core list
[]
🙂 The output is an empty array.
$ git checkout master
[...]
$ task build
[...]
$ ./arduino-cli version
arduino-cli Version: 1.0.4 Commit: a0d912da1 Date: 2024-08-13T04:26:35Z
$ ./arduino-cli --format json core list
{
"platforms": null
}
🐛 The output is the inappropriate null
.
ⓘ Note that the breaking change in the overall data format between the two Arduino CLI versions used in the demos, where the list of installed platforms is now provided under the platforms
key of an object is intended, documented, reasonable, and not the subject of this issue report.
Expected behavior
The list of platforms is always an array:
{
"platforms": []
}
Arduino CLI version
1.0.4
Operating system
- Windows
Operating system version
- Windows 11
Additional context
The regression occurred at ad5dacc (#2357).
Originally reported at arduino/compile-sketches#310
Issue checklist
- I searched for previous reports in the issue tracker
- I verified the problem still occurs when using the nightly build
- My report contains all necessary detailst