Skip to content

Commit 8cf0cb3

Browse files
harryzcysamuelkarp
authored andcommitted
Support normalizing any arm64/v9.x variants
Signed-off-by: Chongyi Zheng <[email protected]> Signed-off-by: Samuel Karp <[email protected]>
1 parent 41c2c97 commit 8cf0cb3

File tree

2 files changed

+39
-7
lines changed

2 files changed

+39
-7
lines changed

compare_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,30 @@ func TestOnlyStrict(t *testing.T) {
479479
},
480480
},
481481
},
482+
{
483+
platform: "linux/arm64/v9.5",
484+
matches: map[bool][]string{
485+
true: {
486+
"linux/arm64/v9.5",
487+
},
488+
false: {
489+
"linux/arm",
490+
"linux/arm/v5",
491+
"linux/arm/v6",
492+
"linux/arm/v7",
493+
"linux/arm/v8",
494+
"linux/amd64",
495+
"linux/arm/v4",
496+
"linux/arm64/v8",
497+
"linux/arm64/v8.1",
498+
"linux/arm64/v9",
499+
"linux/arm64/v9.1",
500+
"linux/arm64/v9.4",
501+
"windows/amd64",
502+
"windows/arm",
503+
},
504+
},
505+
},
482506
{
483507
platform: "linux/arm64/v9",
484508
matches: map[bool][]string{

database.go

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,22 @@ func normalizeArch(arch, variant string) (string, string) {
8686
}
8787
case "aarch64", "arm64":
8888
arch = "arm64"
89-
switch variant {
90-
case "8", "v8", "8.0", "v8.0":
89+
majorVariant, minorVariant, hasMinor := strings.Cut(variant, ".")
90+
majorVariant = strings.TrimPrefix(majorVariant, "v")
91+
if minorVariant == "0" {
92+
minorVariant = ""
93+
hasMinor = false
94+
}
95+
96+
if (majorVariant == "" || majorVariant == "8") && !hasMinor {
97+
// normalize v8 to empty string
9198
variant = ""
92-
case "9", "9.0", "v9.0":
93-
variant = "v9"
94-
case "8.1", "8.2", "8.3", "8.4", "8.5", "8.6", "8.7", "8.8", "8.9",
95-
"9.1", "9.2", "9.3", "9.4", "9.5":
96-
variant = "v" + variant
99+
} else {
100+
// otherwise to v8.x or v9 or v9.x
101+
variant = "v" + majorVariant
102+
if hasMinor {
103+
variant = variant + "." + minorVariant
104+
}
97105
}
98106
case "armhf":
99107
arch = "arm"

0 commit comments

Comments
 (0)