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

Appearance settings

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

Copy link
Copy link
Closed
@kittaakos

Description

@kittaakos
Issue body actions

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

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 itselfRelated to content of the project itselftype: enhancementProposed improvementProposed improvement

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.