-
-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Describe the bug
Prior to arduino/arduino-cli#1537, Arduino CLI installed builtin:serial-discovery@1.3.0-rc1:
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:serial-discovery@1.3.0-rc1 is actually significantly outdated when compared to the latest release builtin:serial-discovery@1.2.2:
https://github.com/arduino/serial-discovery/releases
However, since in semver 1.2.2 < 1.3.0-rc1, builtin:serial-discovery@1.2.2 will never be installed or used so long as the user has builtin:serial-discovery@1.3.0-rc1 installed.
To Reproduce
- Remove any prior installation of
builtin:serial-discovery@1.2.2 - Use Arduino CLI 0.19.3 to run any command that does an init (e.g.,
arduino-cli board list).
builtin:serial-discovery@1.3.0-rc1will be installed if it is not already. - Use Arduino CLI 0.20.0 or later to run any command that does an init (e.g.,
arduino-cli board list).
builtin:serial-discovery@1.2.2will not be installed - Use Arduino CLI 0.20.0 or later run a command that runs serial-discovery (e.g.,
arduino-cli board list)
builtin:serial-discovery@1.3.0-rc1will be used.
Demo
$ arduino-cli_0.19.3/arduino-cli board list
Downloading missing tool builtin:serial-discovery@1.3.0-rc1...
builtin:serial-discovery@1.3.0-rc1 already downloaded
Installing builtin:serial-discovery@1.3.0-rc1...
builtin:serial-discovery@1.3.0-rc1 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:serial-discovery@1.2.2 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:serial-discovery@1.2.2 is installed because 1.3.0-rc1 is no longer present
Downloading missing tool builtin:serial-discovery@1.2.2...
builtin:serial-discovery@1.2.2 downloaded
Installing builtin:serial-discovery@1.2.2...
builtin:serial-discovery@1.2.2 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:serial-discovery@1.3.0-rc1...
builtin:serial-discovery@1.3.0-rc1 already downloaded
Installing builtin:serial-discovery@1.3.0-rc1...
builtin:serial-discovery@1.3.0-rc1 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