Skip to content

Commit 5b59182

Browse files
authored
Merge pull request #44 from grafana/43-semvers-with-build-metadata-are-unmarshalled-incorrectly
build metadata support in version constraints
2 parents 7b88bb3 + 6042a9e commit 5b59182

File tree

4 files changed

+29
-2
lines changed

4 files changed

+29
-2
lines changed

dependencies.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
//nolint:gochecknoglobals
1313
var (
1414
srcName = `(?P<name>k6|k6/[^/]{2}.*|k6/[^x]/.*|k6/x/[/0-9a-zA-Z_-]+|(@[a-zA-Z0-9-_]+/)?xk6-([a-zA-Z0-9-_]+)((/[a-zA-Z0-9-_]+)*))` //nolint:lll
15-
srcConstraint = `[vxX*|,&\^0-9.+-><=, ~]+`
15+
srcConstraint = `=?v?0\.0\.0\+[0-9A-Za-z-]+|[vxX*|,&\^0-9.+-><=, ~]+`
1616

1717
reName = regexp.MustCompile(srcName)
1818

dependency.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ var (
2424

2525
defaultConstraints, _ = semver.NewConstraint(defaultConstraintsString)
2626

27-
reDependency = regexp.MustCompile(`(?P<name>[0-9a-zA-Z/@_-]+) *(?P<constraints>[vxX*|,&\^0-9.+-><=, ~]+)?`)
27+
srcDependency = `(?P<name>[0-9a-zA-Z/@_-]+) *(?P<constraints>` + srcConstraint + `)?`
28+
29+
reDependency = regexp.MustCompile(srcDependency)
2830
idxDependencyName = reDependency.SubexpIndex("name")
2931
idxDependencyConstraints = reDependency.SubexpIndex("constraints")
3032
)

dependency_internal_test.go

+18
Original file line numberDiff line numberDiff line change
@@ -90,3 +90,21 @@ func Test_Dependency_marshalJS(t *testing.T) {
9090
require.Error(t, err)
9191
}
9292
}
93+
94+
func Test_reDependency(t *testing.T) {
95+
t.Parallel()
96+
97+
var d Dependency
98+
99+
require.NoError(t, d.UnmarshalText([]byte("k6*")))
100+
require.Equal(t, "*", d.Constraints.String())
101+
102+
require.NoError(t, d.UnmarshalText([]byte("k6 >= v0.55")))
103+
require.Equal(t, ">=v0.55", d.Constraints.String())
104+
105+
require.NoError(t, d.UnmarshalText([]byte("k6 v0.0.0+135f85b")))
106+
require.Equal(t, "v0.0.0+135f85b", d.Constraints.String())
107+
108+
require.NoError(t, d.UnmarshalText([]byte("k6 v0.0.0+90bb941")))
109+
require.Equal(t, "v0.0.0+90bb941", d.Constraints.String())
110+
}

releases/v0.1.8.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
k6deps `v0.1.8` is here 🎉!
2+
3+
This release includes:
4+
5+
- fix [semvers with build metadata are unmarshalled incorrectly](https://github.com/grafana/k6deps/issues/43)
6+
- If the version is `v0.0.0`, then support for build metadata in version constraints according to semver
7+

0 commit comments

Comments
 (0)