Description
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
- Remove any prior installation of
builtin:[email protected]
- 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. - 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 - 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