Skip to content

Commit 4c5d2d3

Browse files
authored
Order package revisions (#3048)
1 parent 467767a commit 4c5d2d3

File tree

2 files changed

+34
-3
lines changed

2 files changed

+34
-3
lines changed

e2e/testdata/porch/rpkg-get/config.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ commands:
1515
- --output=custom-columns=NAME:.metadata.name,PKG:.spec.packageName,REPO:.spec.repository,REV:.spec.revision
1616
stdout: |
1717
NAME PKG REPO REV
18-
test-blueprints-526fa27229adcc3b6a9a544c455c344a3b4d7597 basens test-blueprints v1
19-
test-blueprints-e78ee77d9560703561c2656c97c77e9abb8c4c53 empty test-blueprints v1
2018
test-blueprints-9626794e984ff13c9a4c64df5af0f15ec3a146bf basens test-blueprints main
19+
test-blueprints-526fa27229adcc3b6a9a544c455c344a3b4d7597 basens test-blueprints v1
2120
test-blueprints-58fffeb908ead18e2c05c873e61bff11a5292963 empty test-blueprints main
21+
test-blueprints-e78ee77d9560703561c2656c97c77e9abb8c4c53 empty test-blueprints v1
2222
- args:
2323
- alpha
2424
- rpkg
@@ -38,5 +38,5 @@ commands:
3838
- --output=custom-columns=NAME:.metadata.name,PKG:.spec.packageName,REPO:.spec.repository,REV:.spec.revision
3939
stdout: |
4040
NAME PKG REPO REV
41-
test-blueprints-526fa27229adcc3b6a9a544c455c344a3b4d7597 basens test-blueprints v1
4241
test-blueprints-9626794e984ff13c9a4c64df5af0f15ec3a146bf basens test-blueprints main
42+
test-blueprints-526fa27229adcc3b6a9a544c455c344a3b4d7597 basens test-blueprints v1

porch/repository/pkg/cache/repository.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ package cache
1616

1717
import (
1818
"context"
19+
"sort"
20+
"strings"
1921
"sync"
2022
"time"
2123

@@ -317,5 +319,34 @@ func toPackageRevisionSlice(cached []*cachedPackageRevision, filter repository.L
317319
result = append(result, p)
318320
}
319321
}
322+
sort.Slice(result, func(i, j int) bool {
323+
ki, kl := result[i].Key(), result[j].Key()
324+
switch res := strings.Compare(ki.Package, kl.Package); {
325+
case res < 0:
326+
return true
327+
case res > 0:
328+
return false
329+
default:
330+
// Equal. Compare next element
331+
}
332+
switch res := strings.Compare(ki.Revision, kl.Revision); {
333+
case res < 0:
334+
return true
335+
case res > 0:
336+
return false
337+
default:
338+
// Equal. Compare next element
339+
}
340+
switch res := strings.Compare(string(result[i].Lifecycle()), string(result[j].Lifecycle())); {
341+
case res < 0:
342+
return true
343+
case res > 0:
344+
return false
345+
default:
346+
// Equal. Compare next element
347+
}
348+
349+
return strings.Compare(result[i].KubeObjectName(), result[j].KubeObjectName()) < 0
350+
})
320351
return result
321352
}

0 commit comments

Comments
 (0)