@@ -25,6 +25,7 @@ import (
25
25
"github.com/arduino/arduino-cli/arduino/libraries/librariesindex"
26
26
"github.com/arduino/arduino-cli/commands/internal/instances"
27
27
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
28
+ semver "go.bug.st/relaxed-semver"
28
29
)
29
30
30
31
// LibraryResolveDependencies FIXMEDOC
@@ -80,14 +81,19 @@ func LibraryResolveDependencies(ctx context.Context, req *rpc.LibraryResolveDepe
80
81
res := []* rpc.LibraryDependencyStatus {}
81
82
for _ , dep := range deps {
82
83
// ...and add information on currently installed versions of the libraries
83
- installed := ""
84
+ var installed * semver.Version
85
+ required := dep .GetVersion ()
84
86
if installedLib , has := installedLibs [dep .GetName ()]; has {
85
- installed = installedLib .Version .String ()
87
+ installed = installedLib .Version
88
+ if installed != nil && required != nil && installed .Equal (required ) {
89
+ // avoid situations like installed=0.53 and required=0.53.0
90
+ required = installed
91
+ }
86
92
}
87
93
res = append (res , & rpc.LibraryDependencyStatus {
88
94
Name : dep .GetName (),
89
- VersionRequired : dep . GetVersion () .String (),
90
- VersionInstalled : installed ,
95
+ VersionRequired : required .String (),
96
+ VersionInstalled : installed . String () ,
91
97
})
92
98
}
93
99
sort .Slice (res , func (i , j int ) bool {
0 commit comments