fix(go): pad versions to 3 parts, filter -arm6. oddity

Node.js pads Go versions like "1.10" to "1.10.0". Match this behavior
in the classifier and comparecache version normalizer. Also filter
-arm6. malformed arch and .src. source tarballs from comparison noise.

Match count: 73/106
This commit is contained in:
AJ ONeal
2026-03-10 18:30:57 -06:00
parent 56a8a8ea71
commit a4e9f875cd
2 changed files with 20 additions and 4 deletions

View File

@@ -495,8 +495,8 @@ func isLiveNoise(name string) bool {
}
}
// Source tarballs (e.g. gitea-src-1.25.4.tar.gz, caddy_2.10.0_src.tar.gz).
if strings.Contains(lower, "-src-") || strings.Contains(lower, "_src.") || strings.HasPrefix(lower, "src-") {
// Source tarballs (e.g. gitea-src-1.25.4.tar.gz, caddy_2.10.0_src.tar.gz, go1.26.1.src.tar.gz).
if strings.Contains(lower, "-src-") || strings.Contains(lower, "_src.") || strings.Contains(lower, ".src.") || strings.HasPrefix(lower, "src-") {
return true
}
@@ -556,6 +556,16 @@ func normalizeVersionFunc(pkg string) func(string) string {
}
return v
}
case "go":
return func(v string) string {
// Go: go1.10 → 1.10.0 (pad to 3 parts)
v = strings.TrimPrefix(v, "go")
parts := strings.SplitN(v, ".", 3)
for len(parts) < 3 {
parts = append(parts, "0")
}
return strings.Join(parts, ".")
}
default:
return func(v string) string { return v }
}

View File

@@ -687,8 +687,14 @@ func classifyGolang(d *rawcache.Dir) ([]storage.Asset, error) {
continue
}
// Strip "go" prefix from version: "go1.24.1" → "1.24.1"
// Strip "go" prefix and pad to 3-part version: "go1.10" → "1.10.0"
version := strings.TrimPrefix(rel.Version, "go")
parts := strings.SplitN(version, ".", 3)
for len(parts) < 3 {
parts = append(parts, "0")
}
version = strings.Join(parts, ".")
channel := "stable"
if !rel.Stable {
channel = "beta"
@@ -699,7 +705,7 @@ func classifyGolang(d *rawcache.Dir) ([]storage.Asset, error) {
continue
}
// Skip bootstrap and odd builds.
if strings.Contains(f.Filename, "bootstrap") {
if strings.Contains(f.Filename, "bootstrap") || strings.Contains(f.Filename, "-arm6.") {
continue
}