diff --git a/arduino/libraries/librariesindex/index.go b/arduino/libraries/librariesindex/index.go index b21506a197e..43220455d1b 100644 --- a/arduino/libraries/librariesindex/index.go +++ b/arduino/libraries/librariesindex/index.go @@ -136,7 +136,7 @@ func (idx *Index) FindLibraryUpdate(lib *libraries.Library) *Release { if indexLib == nil { return nil } - if indexLib.Latest.Version.GreaterThan(lib.Version) { + if lib.Version == nil || indexLib.Latest.Version.GreaterThan(lib.Version) { return indexLib.Latest } return nil diff --git a/arduino/libraries/librariesindex/index_test.go b/arduino/libraries/librariesindex/index_test.go index cc6f9928c89..097d7adec51 100644 --- a/arduino/libraries/librariesindex/index_test.go +++ b/arduino/libraries/librariesindex/index_test.go @@ -78,6 +78,10 @@ func TestIndexer(t *testing.T) { require.NotNil(t, rtcUpdate) require.Equal(t, "RTCZero@1.6.0", rtcUpdate.String()) + rtcUpdateNoVersion := index.FindLibraryUpdate(&libraries.Library{Name: "RTCZero", Version: nil}) + require.NotNil(t, rtcUpdateNoVersion) + require.Equal(t, "RTCZero@1.6.0", rtcUpdateNoVersion.String()) + rtcNoUpdate := index.FindLibraryUpdate(&libraries.Library{Name: "RTCZero", Version: semver.MustParse("3.0.0")}) require.Nil(t, rtcNoUpdate)