Skip to content

Commit d973ff2

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

2 files changed

Lines changed: 17 additions & 10 deletions

File tree

pkg/lint/rules.go

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

488-
providesList := []string{
489-
fmt.Sprintf("%s=%s-r%d", packageName, c.Package.Version, c.Package.Epoch),
490-
fmt.Sprintf("%s=%s-r%d", packageName, versionStream, c.Package.Epoch),
491-
fmt.Sprintf("%s=%s", packageName, c.Package.Version),
492-
fmt.Sprintf("%s=%s", packageName, versionStream),
493-
fmt.Sprintf("%s=%s.999", packageName, versionStream),
488+
var providesList []string
489+
addToProvidesList := func(key string) {
490+
providesList = append(providesList, fmt.Sprintf("%s=%s-r%d", key, c.Package.Version, c.Package.Epoch))
491+
providesList = append(providesList, fmt.Sprintf("%s=%s-r%d", key, versionStream, c.Package.Epoch))
492+
providesList = append(providesList, fmt.Sprintf("%s=%s", key, c.Package.Version))
493+
providesList = append(providesList, fmt.Sprintf("%s=%s", key, versionStream))
494+
providesList = append(providesList, fmt.Sprintf("%s=%s.999", key, versionStream))
495+
}
496+
addToProvidesList(packageName)
497+
498+
// Some packages have different provides for package name, i.e. python-3 instead of python.
499+
if majorMinor := strings.Split(versionStream, "."); len(majorMinor) > 1 {
500+
addToProvidesList(fmt.Sprintf("%s-%s", packageName, majorMinor[0]))
494501
}
495502

496503
anyMatch := false
@@ -506,7 +513,7 @@ var AllRules = func(l *Linter) Rules { //nolint:gocyclo
506513
}
507514

508515
if c.Update.Enabled && !c.Update.Manual && c.Update.GitHubMonitor != nil {
509-
prefixesToCheck := []string{"", "v", packageName, "release"}
516+
prefixesToCheck := []string{"", "v", packageName, "release", strings.ReplaceAll(packageName, "-fips", ""), c.Update.GitHubMonitor.StripPrefix}
510517
separators := []string{"", ".", "-", "_"}
511518
versionsToCheck := []string{versionStream, strings.ReplaceAll(versionStream, ".", "-"), strings.ReplaceAll(versionStream, ".", "_")}
512519

@@ -522,7 +529,7 @@ var AllRules = func(l *Linter) Rules { //nolint:gocyclo
522529
}
523530

524531
if !slices.Contains(filtersToCheck, c.Update.GitHubMonitor.TagFilter) && !slices.Contains(filtersToCheck, c.Update.GitHubMonitor.TagFilterPrefix) {
525-
return fmt.Errorf("package is version streamed but tag filter %s is missing on update.github", versionStream)
532+
return fmt.Errorf("package is version streamed but tag filter %s is mismatch on update.github", versionStream)
526533
}
527534
}
528535
return nil

pkg/lint/rules_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ func TestLinter_Rules(t *testing.T) {
442442
Name: "valid-version-stream",
443443
Severity: SeverityError,
444444
},
445-
Error: fmt.Errorf("[valid-version-stream]: package is version streamed but tag filter 1.2 is missing on update.github (ERROR)"),
445+
Error: fmt.Errorf("[valid-version-stream]: package is version streamed but tag filter 1.2 is mismatch on update.github (ERROR)"),
446446
},
447447
},
448448
},
@@ -460,7 +460,7 @@ func TestLinter_Rules(t *testing.T) {
460460
Name: "valid-version-stream",
461461
Severity: SeverityError,
462462
},
463-
Error: fmt.Errorf("[valid-version-stream]: package is version streamed but tag filter 1.2 is missing on update.github (ERROR)"),
463+
Error: fmt.Errorf("[valid-version-stream]: package is version streamed but tag filter 1.2 is mismatch on update.github (ERROR)"),
464464
},
465465
},
466466
},

0 commit comments

Comments
 (0)