- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 431
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-06T06: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
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