Skip to content

Latest serial-discovery release uses version lower than previous #32

Closed
@per1234

Description

@per1234

Describe the bug

Prior to arduino/arduino-cli#1537, Arduino CLI installed builtin:[email protected]:
https://github.com/arduino/arduino-cli/pull/1537/files#diff-d3fa6a741630f5c517b99d6c8793c597897132c717d9e7a25cea4320777ab5d4L28

Arduino CLI only installs a tool of the builtin package if it is newer than the latest version already installed:
https://github.com/arduino/arduino-cli/blob/83f3deb14142f6c4eb72992a87dd582c72f97239/arduino/cores/tools.go#L83

The same logic applies to loading the discovery:
https://github.com/arduino/arduino-cli/blob/83f3deb14142f6c4eb72992a87dd582c72f97239/arduino/cores/tools.go#L96

builtin:[email protected] is actually significantly outdated when compared to the latest release builtin:[email protected]:
https://github.com/arduino/serial-discovery/releases
However, since in semver 1.2.2 < 1.3.0-rc1, builtin:[email protected] will never be installed or used so long as the user has builtin:[email protected] installed.

To Reproduce

  1. Remove any prior installation of builtin:[email protected]
  2. Use Arduino CLI 0.19.3 to run any command that does an init (e.g., arduino-cli board list).
    builtin:[email protected] will be installed if it is not already.
  3. Use Arduino CLI 0.20.0 or later to run any command that does an init (e.g., arduino-cli board list).
    builtin:[email protected] will not be installed
  4. Use Arduino CLI 0.20.0 or later run a command that runs serial-discovery (e.g., arduino-cli board list)
    builtin:[email protected] will be used.

Demo

$ arduino-cli_0.19.3/arduino-cli board list
Downloading missing tool builtin:[email protected]...
builtin:[email protected] already downloaded
Installing builtin:[email protected]...
builtin:[email protected] installed
Port       Protocol Type    Board Name FQBN Core
/dev/ttyS4 serial   Unknown

$ arduino-cli_nightly/arduino-cli version
arduino-cli  Version: nightly-20211127 Commit: 83f3deb Date: 2021-11-27T01:25:33Z

$ ls ~/.arduino15/packages/builtin/tools/serial-discovery
1.1.0  1.2.1  1.3.0-rc1

$ arduino-cli_nightly/arduino-cli board list  # note that builtin:[email protected] is not installed
Port       Protocol Type    Board Name FQBN Core
/dev/ttyS4 serial   Unknown

$ ls ~/.arduino15/packages/builtin/tools/serial-discovery
1.1.0  1.2.1  1.3.0-rc1

$ rm -rf ~/.arduino15/packages/builtin/tools/serial-discovery/1.3.0-rc1/

$ arduino-cli_nightly/arduino-cli board list  # Now builtin:[email protected] is installed because 1.3.0-rc1 is no longer present
Downloading missing tool builtin:[email protected]...
builtin:[email protected] downloaded
Installing builtin:[email protected]...
builtin:[email protected] installed
Port       Protocol Type    Board Name FQBN Core
/dev/ttyS4 serial   Unknown

$ arduino-cli_0.19.3/arduino-cli board list # Install 1.3.0-rc1 again
Downloading missing tool builtin:[email protected]...
builtin:[email protected] already downloaded
Installing builtin:[email protected]...
builtin:[email protected] installed
Port       Protocol Type    Board Name FQBN Core
/dev/ttyS4 serial   Unknown

$ ls ~/.arduino15/packages/builtin/tools/serial-discovery # Now they are both installed
1.1.0  1.2.1  1.2.2 1.3.0-rc1

$ arduino-cli_nightly/arduino-cli board list --watch & sleep 1; ps aux | egrep "[s]erial-discovery" # Note that 1.3.0-rc1 was used
[1] 6941
Port Type Event Board Name FQBN Core

/dev/ttyS4 Serial Port Connected

per         6949  1.0  0.0 703868  4716 pts/0    Sl   04:05   0:00 /home/per/.arduino15/packages/builtin/tools/serial-discovery/1.3.0-rc1/serial-discovery

Expected behavior

Tool release version numbers to be sequential.

Desktop

  • OS: Windows 10, Ubuntu 20.04
  • Version: nightly-20211127 Commit: 83f3deb Date: 2021-11-27T01:25:33Z

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions