fix merge conflicts

This commit is contained in:
André Roth committed 2026-11-05 12:51:13 +01:00
1 parent 300837fe06
commit 151f67a294
2 files changed
+30 -7

No files matched your search

+28 -5
View File
@@ -199,15 +199,38 @@ func (l *PackageList) FilterLatest(count int) (*PackageList, error) {
for _, pkgs := range groups {
// sort from latest to oldest
sort.Slice(pkgs, func(i, j int) bool {
return CompareVersions(pkgs[i].Version, pkgs[j].Version) > 0
sort.SliceStable(pkgs, func(i, j int) bool {
cmp, cmpErr := CompareVersions(pkgs[i].Version, pkgs[j].Version)
switch cmpErr {
case LeftInvalid, BothInvalid:
return false
case RightInvalid:
return true
}
return cmp > 0
})
versions := 0
for i, p := range pkgs {
if i == 0 || CompareVersions(p.Version, pkgs[i-1].Version) != 0 {
versions++
if versions > count {
if i == 0 {
// first element always included
} else {
cmp, cmpErr := CompareVersions(p.Version, pkgs[i-1].Version)
switch cmpErr {
case LeftInvalid, BothInvalid:
// invalid version is different from previous
versions++
case RightInvalid:
// previous was invalid, current is valid — different
versions++
default:
if cmp == 0 {
// same version, skip
} else {
versions++
}
}
if versions >= count {
break
}
}
+2 -2
View File
@@ -580,7 +580,7 @@ func (s *PackageListSuite) TestFilterLatestInvalidVersions(c *C) {
_ = list.Add(valid)
_ = list.Add(invalid)
filtered, err := list.FilterLatest()
filtered, err := list.FilterLatest(1)
c.Assert(err, IsNil)
c.Check(filtered.Len(), Equals, 1)
c.Check(filtered.Has(valid), Equals, true)
@@ -588,7 +588,7 @@ func (s *PackageListSuite) TestFilterLatestInvalidVersions(c *C) {
invalidOnly := NewPackageList()
_ = invalidOnly.Add(&Package{Name: "pkg", Version: "1.0-", Architecture: "amd64"})
_ = invalidOnly.Add(&Package{Name: "pkg", Version: "2.0-", Architecture: "amd64"})
filtered, err = invalidOnly.FilterLatest()
filtered, err = invalidOnly.FilterLatest(1)
c.Assert(err, IsNil)
c.Check(filtered.Len(), Equals, 1)
}