Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Please make the output of the board listall --format json deterministic #1909

Closed
Assignees
Labels
topic: codeRelated to content of the project itself type: enhancementProposed improvement
@kittaakos

Description

Describe the request

During the review of arduino/arduino-ide#1520, I noticed that the output of board listall --format json is not always the same. It's not a big deal, but it works fine with the non json output. It would be great to have the same result when I execute the same command twice. This also affects the gRPC API.

Update:
For completeness, the order of the boards inside a platform matches the boards.txt order, but the platforms' order seems "random".

Describe the current behavior

I am using a CLI from c8ff042:

% ./arduino-cli version 
arduino-cli Version: git-snapshot Commit: c8ff0425 Date: 2022年10月06日T06:38:53Z

I have the following platforms installed:

% ./arduino-cli core list 
ID Installed Latest Name 
arduino:mbed_nano 3.2.0 3.3.0 Arduino Mbed OS Nano Boards 
arduino:nrf52 1.0.2 1.0.2 Arduino nRF52 Boards 
littleBits:avr 1.0.0 1.0.0 littleBits Arduino AVR Modules

When I run board listall without the --format json flags, I always get the same result:

% ./arduino-cli board listall
Board Name FQBN 
Arduino Nano 33 BLE arduino:mbed_nano:nano33ble 
Arduino Nano RP2040 Connect arduino:mbed_nano:nanorp2040connect 
Arduino Primo arduino:nrf52:primo 
Arduino Primo Core arduino:nrf52:primo_core 
littleBits w6 Arduino Module (Leonardo) littleBits:avr:w6_arduino 
% ./arduino-cli board listall
Board Name FQBN 
Arduino Nano 33 BLE arduino:mbed_nano:nano33ble 
Arduino Nano RP2040 Connect arduino:mbed_nano:nanorp2040connect 
Arduino Primo arduino:nrf52:primo 
Arduino Primo Core arduino:nrf52:primo_core 
littleBits w6 Arduino Module (Leonardo) littleBits:avr:w6_arduino 
% ./arduino-cli board listall
Board Name FQBN 
Arduino Nano 33 BLE arduino:mbed_nano:nano33ble 
Arduino Nano RP2040 Connect arduino:mbed_nano:nanorp2040connect 
Arduino Primo arduino:nrf52:primo 
Arduino Primo Core arduino:nrf52:primo_core 
littleBits w6 Arduino Module (Leonardo) littleBits:avr:w6_arduino 
% ./arduino-cli board listall
Board Name FQBN 
Arduino Nano 33 BLE arduino:mbed_nano:nano33ble 
Arduino Nano RP2040 Connect arduino:mbed_nano:nanorp2040connect 
Arduino Primo arduino:nrf52:primo 
Arduino Primo Core arduino:nrf52:primo_core 
littleBits w6 Arduino Module (Leonardo) littleBits:avr:w6_arduino 
% ./arduino-cli board listall
Board Name FQBN 
Arduino Nano 33 BLE arduino:mbed_nano:nano33ble 
Arduino Nano RP2040 Connect arduino:mbed_nano:nanorp2040connect 
Arduino Primo arduino:nrf52:primo 
Arduino Primo Core arduino:nrf52:primo_core 
littleBits w6 Arduino Module (Leonardo) littleBits:avr:w6_arduino 

Run the same command with the --format json flag at least twice (or multiple times), and you most likely get a different output than the previous one:

% ./arduino-cli board listall --format json
{
 "boards": [
 {
 "name": "Arduino Primo",
 "fqbn": "arduino:nrf52:primo",
 "platform": {
 "id": "arduino:nrf52",
 "installed": "1.0.2",
 "latest": "1.0.2",
 "name": "Arduino nRF52 Boards",
 "maintainer": "Arduino",
 "website": "http://www.arduino.cc/",
 "email": "packages@arduino.cc"
 }
 },
 {
 "name": "Arduino Primo Core",
 "fqbn": "arduino:nrf52:primo_core",
 "platform": {
 "id": "arduino:nrf52",
 "installed": "1.0.2",
 "latest": "1.0.2",
 "name": "Arduino nRF52 Boards",
 "maintainer": "Arduino",
 "website": "http://www.arduino.cc/",
 "email": "packages@arduino.cc"
 }
 },
 {
 "name": "Arduino Nano RP2040 Connect",
 "fqbn": "arduino:mbed_nano:nanorp2040connect",
 "platform": {
 "id": "arduino:mbed_nano",
 "installed": "3.2.0",
 "latest": "3.3.0",
 "name": "Arduino Mbed OS Nano Boards",
 "maintainer": "Arduino",
 "website": "http://www.arduino.cc/",
 "email": "packages@arduino.cc"
 }
 },
 {
 "name": "Arduino Nano 33 BLE",
 "fqbn": "arduino:mbed_nano:nano33ble",
 "platform": {
 "id": "arduino:mbed_nano",
 "installed": "3.2.0",
 "latest": "3.3.0",
 "name": "Arduino Mbed OS Nano Boards",
 "maintainer": "Arduino",
 "website": "http://www.arduino.cc/",
 "email": "packages@arduino.cc"
 }
 },
 {
 "name": "littleBits w6 Arduino Module (Leonardo)",
 "fqbn": "littleBits:avr:w6_arduino",
 "platform": {
 "id": "littleBits:avr",
 "installed": "1.0.0",
 "latest": "1.0.0",
 "name": "littleBits Arduino AVR Modules",
 "maintainer": "littleBits Electronics",
 "website": "http://www.littlebits.cc/bits/w6-arduino",
 "email": "support@littlebits.cc"
 }
 }
 ]
}
% ./arduino-cli board listall --format json
{
 "boards": [
 {
 "name": "Arduino Nano RP2040 Connect",
 "fqbn": "arduino:mbed_nano:nanorp2040connect",
 "platform": {
 "id": "arduino:mbed_nano",
 "installed": "3.2.0",
 "latest": "3.3.0",
 "name": "Arduino Mbed OS Nano Boards",
 "maintainer": "Arduino",
 "website": "http://www.arduino.cc/",
 "email": "packages@arduino.cc"
 }
 },
 {
 "name": "Arduino Nano 33 BLE",
 "fqbn": "arduino:mbed_nano:nano33ble",
 "platform": {
 "id": "arduino:mbed_nano",
 "installed": "3.2.0",
 "latest": "3.3.0",
 "name": "Arduino Mbed OS Nano Boards",
 "maintainer": "Arduino",
 "website": "http://www.arduino.cc/",
 "email": "packages@arduino.cc"
 }
 },
 {
 "name": "Arduino Primo",
 "fqbn": "arduino:nrf52:primo",
 "platform": {
 "id": "arduino:nrf52",
 "installed": "1.0.2",
 "latest": "1.0.2",
 "name": "Arduino nRF52 Boards",
 "maintainer": "Arduino",
 "website": "http://www.arduino.cc/",
 "email": "packages@arduino.cc"
 }
 },
 {
 "name": "Arduino Primo Core",
 "fqbn": "arduino:nrf52:primo_core",
 "platform": {
 "id": "arduino:nrf52",
 "installed": "1.0.2",
 "latest": "1.0.2",
 "name": "Arduino nRF52 Boards",
 "maintainer": "Arduino",
 "website": "http://www.arduino.cc/",
 "email": "packages@arduino.cc"
 }
 },
 {
 "name": "littleBits w6 Arduino Module (Leonardo)",
 "fqbn": "littleBits:avr:w6_arduino",
 "platform": {
 "id": "littleBits:avr",
 "installed": "1.0.0",
 "latest": "1.0.0",
 "name": "littleBits Arduino AVR Modules",
 "maintainer": "littleBits Electronics",
 "website": "http://www.littlebits.cc/bits/w6-arduino",
 "email": "support@littlebits.cc"
 }
 }
 ]
}
% 

Arduino CLI version

c8ff042

Operating system

macOS

Operating system version

12.5.1

Additional context

No response

Issue checklist

  • I searched for previous requests in the issue tracker
  • I verified the feature was still missing when using the nightly build
  • My request contains all necessary details

Metadata

Metadata

Assignees

Labels

topic: codeRelated to content of the project itself type: enhancementProposed improvement

Type

No type

Projects

No projects

Milestone

No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      AltStyle によって変換されたページ (->オリジナル) /