Skip to content

lib list/core list might list the library/platform versions in a non-semver compliant way #1727

@kittaakos

Description

@kittaakos

Bug Report

Library authors can use a relaxed-semver. For example, 1.0 is OK. If such a library is installed, lib list will return with the 1.0 version, which is not a valid semver. Hence the library install will fail with this version.

Current behavior

Steps to reproduce:

% rm -rf ~/Documents/Arduino && rm -rf ~/Library/Arduino15 % ./arduino-cli version --format json { "Application": "arduino-cli", "VersionString": "0.22.0", "Commit": "65f662a7", "Status": "", "Date": "2022-05-06T11:09:35Z" } % ./arduino-cli lib list --format json [] % ./arduino-cli lib install "ILI9341_t3"@1.0.0 --format json % ./arduino-cli lib list --format json [ { "library": { "name": "ILI9341_t3", "author": "Limor Fried, Adafruit, Paul Stoffregen", "maintainer": "Paul Stoffregen", "sentence": "Optimized ILI9341 (320x240 Color TFT) Display", "website": "https://github.com/PaulStoffregen/ILI9341_t3", "category": "Display", "architectures": [ "*" ], "install_dir": "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3", "source_dir": "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3", "real_name": "ILI9341_t3", "version": "1.0", "license": "Unspecified", "location": 1, "examples": [ "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3/examples/breakouttouchpaint", "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3/examples/graphicstest", "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3/examples/onoffbutton", "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3/examples/onoffbutton_breakout", "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3/examples/spitftbitmap", "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3/examples/touchpaint" ], "provides_includes": [ "ILI9341_t3.h" ] } } ] % rm -rf ~/Documents/Arduino && rm -rf ~/Library/Arduino15 % ./arduino-cli lib list --format json [] % ./arduino-cli lib install "ILI9341_t3"@1.0 --format json Error installing ILI9341_t3: Library 'ILI9341_t3@1.0' not found % 

Expected behavior

In this particular case, the lib list should return with such a JSON:

[ { "library": { "name": "ILI9341_t3", "author": "Limor Fried, Adafruit, Paul Stoffregen", "maintainer": "Paul Stoffregen", "sentence": "Optimized ILI9341 (320x240 Color TFT) Display", "website": "https://github.com/PaulStoffregen/ILI9341_t3", "category": "Display", "architectures": [ "*" ], "install_dir": "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3", "source_dir": "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3", "real_name": "ILI9341_t3", "version": "1.0.0", // <---- return with `1.0.0` instead of `1.0` "license": "Unspecified", "location": 1, "examples": [ "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3/examples/breakouttouchpaint", "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3/examples/graphicstest", "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3/examples/onoffbutton", "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3/examples/onoffbutton_breakout", "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3/examples/spitftbitmap", "/Users/a.kitta/Documents/Arduino/libraries/ILI9341_t3/examples/touchpaint" ], "provides_includes": [ "ILI9341_t3.h" ] } } ]

The lib list should result in a valid semver version.

Pipe-dream:
lib install should handle relaxed-semvers gracefully, and lib install "ILI9341_t3"@1.0 should succeed.

Environment

  • CLI version (output of arduino-cli version): arduino-cli Version: 0.22.0 Commit: 65f662a7 Date: 2022-05-06T11:09:35Z
  • OS and platform: macOS 12.3.1 (21E258)

Additional context

Metadata

Metadata

Assignees

Labels

topic: codeRelated to content of the project itselftype: imperfectionPerceived defect in any part of project

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions