Skip to content

Commit

Permalink
Don't treat x in pre-release and build metadata identifiers as a wild…
Browse files Browse the repository at this point in the history
…card

Signed-off-by: Max Brauer <[email protected]>
  • Loading branch information
mamachanko committed Mar 28, 2024
1 parent 5409682 commit 6d25636
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
8 changes: 7 additions & 1 deletion v4/range.go
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@ func expandWildcardVersion(parts [][]string) ([][]string, error) {
for _, p := range parts {
var newParts []string
for _, ap := range p {
if strings.Contains(ap, "x") {
if containsWildcard(ap) {
opStr, vStr, err := splitComparatorVersion(ap)
if err != nil {
return nil, err
Expand Down Expand Up @@ -381,6 +381,12 @@ func expandWildcardVersion(parts [][]string) ([][]string, error) {
return expandedParts, nil
}

// containsWildcard returns true iff there's a wildcard in any of the major, minor or patch components
func containsWildcard(v string) bool {
withoutPrereleaseBuildMeta := strings.Split(strings.Split(v, "+")[0], "-")[0]
return strings.Contains(withoutPrereleaseBuildMeta, "x")
}

func parseComparator(s string) comparator {
switch s {
case "==":
Expand Down
11 changes: 11 additions & 0 deletions v4/range_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,7 @@ func TestGetWildcardType(t *testing.T) {
{"x", majorWildcard},
{"1.x", minorWildcard},
{"1.2.x", patchWildcard},
{"1.2.3-experimental", noneWildcard},
{"fo.o.b.ar", noneWildcard},
}

Expand Down Expand Up @@ -387,6 +388,16 @@ func TestParseRange(t *testing.T) {
{"1.2.3", true},
{"1.2.4", false},
}},
{"1.2.3-experimental.2", []tv{
{"1.2.3-experimental.1", false},
{"1.2.3-experimental.2", true},
{"1.2.3-experimental.3", false},
}},
{"1.2.3+experimental.2", []tv{
{"1.2.3+experimental.1", false},
{"1.2.3+experimental.2", true},
{"1.2.3+experimental.3", false},
}},
{"=1.2.3", []tv{
{"1.2.2", false},
{"1.2.3", true},
Expand Down

0 comments on commit 6d25636

Please sign in to comment.