Skip to content

Commit ed92254

Browse files
committed
handle for versionprefix and custom provider names
Signed-off-by: Dentrax <furkan.turkal@chainguard.dev>
1 parent 8f16499 commit ed92254

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

pkg/lint/rules.go

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -468,12 +468,19 @@ var AllRules = func(l *Linter) Rules { //nolint:gocyclo
468468
return fmt.Errorf("package is version streamed but package.version %s starts with different than given version stream %s", c.Package.Version, versionStream)
469469
}
470470

471-
providesList := []string{
472-
fmt.Sprintf("%s=%s-r%d", packageName, c.Package.Version, c.Package.Epoch),
473-
fmt.Sprintf("%s=%s-r%d", packageName, versionStream, c.Package.Epoch),
474-
fmt.Sprintf("%s=%s", packageName, c.Package.Version),
475-
fmt.Sprintf("%s=%s", packageName, versionStream),
476-
fmt.Sprintf("%s=%s.999", packageName, versionStream),
471+
var providesList []string
472+
addToProvidesList := func(key string) {
473+
providesList = append(providesList, fmt.Sprintf("%s=%s-r%d", key, c.Package.Version, c.Package.Epoch))
474+
providesList = append(providesList, fmt.Sprintf("%s=%s-r%d", key, versionStream, c.Package.Epoch))
475+
providesList = append(providesList, fmt.Sprintf("%s=%s", key, c.Package.Version))
476+
providesList = append(providesList, fmt.Sprintf("%s=%s", key, versionStream))
477+
providesList = append(providesList, fmt.Sprintf("%s=%s.999", key, versionStream))
478+
}
479+
addToProvidesList(packageName)
480+
481+
// Some packages have different provides for package name, i.e. python-3 instead of python.
482+
if majorMinor := strings.Split(versionStream, "."); len(majorMinor) > 1 {
483+
addToProvidesList(fmt.Sprintf("%s-%s", packageName, majorMinor[0]))
477484
}
478485

479486
anyMatch := false
@@ -489,7 +496,7 @@ var AllRules = func(l *Linter) Rules { //nolint:gocyclo
489496
}
490497

491498
if c.Update.Enabled && !c.Update.Manual && c.Update.GitHubMonitor != nil {
492-
prefixesToCheck := []string{"", "v", packageName, "release"}
499+
prefixesToCheck := []string{"", "v", packageName, "release", strings.ReplaceAll(packageName, "-fips", ""), c.Update.GitHubMonitor.StripPrefix}
493500
separators := []string{"", ".", "-", "_"}
494501
versionsToCheck := []string{versionStream, strings.ReplaceAll(versionStream, ".", "-"), strings.ReplaceAll(versionStream, ".", "_")}
495502

@@ -505,7 +512,7 @@ var AllRules = func(l *Linter) Rules { //nolint:gocyclo
505512
}
506513

507514
if !slices.Contains(filtersToCheck, c.Update.GitHubMonitor.TagFilter) && !slices.Contains(filtersToCheck, c.Update.GitHubMonitor.TagFilterPrefix) {
508-
return fmt.Errorf("package is version streamed but tag filter %s is missing on update.github", versionStream)
515+
return fmt.Errorf("package is version streamed but tag filter %s is mismatch on update.github", versionStream)
509516
}
510517
}
511518
return nil

pkg/lint/rules_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ func TestLinter_Rules(t *testing.T) {
426426
Name: "valid-version-stream",
427427
Severity: SeverityError,
428428
},
429-
Error: fmt.Errorf("[valid-version-stream]: package is version streamed but tag filter 1.2 is missing on update.github (ERROR)"),
429+
Error: fmt.Errorf("[valid-version-stream]: package is version streamed but tag filter 1.2 is mismatch on update.github (ERROR)"),
430430
},
431431
},
432432
},
@@ -444,7 +444,7 @@ func TestLinter_Rules(t *testing.T) {
444444
Name: "valid-version-stream",
445445
Severity: SeverityError,
446446
},
447-
Error: fmt.Errorf("[valid-version-stream]: package is version streamed but tag filter 1.2 is missing on update.github (ERROR)"),
447+
Error: fmt.Errorf("[valid-version-stream]: package is version streamed but tag filter 1.2 is mismatch on update.github (ERROR)"),
448448
},
449449
},
450450
},

0 commit comments

Comments
 (0)