Skip to content

Commit b352d90

Browse files
committed
Always use 'installed' version if available
1 parent cef7c9d commit b352d90

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

Diff for: commands/lib/resolve_deps.go

+10-4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"github.com/arduino/arduino-cli/arduino/libraries/librariesindex"
2626
"github.com/arduino/arduino-cli/commands/internal/instances"
2727
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
28+
semver "go.bug.st/relaxed-semver"
2829
)
2930

3031
// LibraryResolveDependencies FIXMEDOC
@@ -80,14 +81,19 @@ func LibraryResolveDependencies(ctx context.Context, req *rpc.LibraryResolveDepe
8081
res := []*rpc.LibraryDependencyStatus{}
8182
for _, dep := range deps {
8283
// ...and add information on currently installed versions of the libraries
83-
installed := ""
84+
var installed *semver.Version
85+
required := dep.GetVersion()
8486
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+
}
8692
}
8793
res = append(res, &rpc.LibraryDependencyStatus{
8894
Name: dep.GetName(),
89-
VersionRequired: dep.GetVersion().String(),
90-
VersionInstalled: installed,
95+
VersionRequired: required.String(),
96+
VersionInstalled: installed.String(),
9197
})
9298
}
9399
sort.Slice(res, func(i, j int) bool {

Diff for: internal/integrationtest/lib/lib_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -1693,6 +1693,7 @@ func TestDependencyResolverNoOverwrite(t *testing.T) {
16931693
]
16941694
}`)
16951695
require.NotEqual(t, outjson.Query("dependencies[0].version_required").String(), `"2.53.0"`)
1696+
require.NotEqual(t, outjson.Query("dependencies[0].version_required").String(), `"2.53"`)
16961697

16971698
out, _, err = cli.Run("lib", "deps", "[email protected]", "--no-overwrite", "--format", "json")
16981699
require.NoError(t, err)
@@ -1701,7 +1702,7 @@ func TestDependencyResolverNoOverwrite(t *testing.T) {
17011702
"dependencies": [
17021703
{
17031704
"name": "Bounce2",
1704-
"version_required": "2.53.0",
1705+
"version_required": "2.53",
17051706
"version_installed": "2.53"
17061707
},
17071708
{

0 commit comments

Comments
 (0)