diff --git a/pkg/go.sum b/pkg/go.sum index 39b2adca2..9383dbefb 100644 --- a/pkg/go.sum +++ b/pkg/go.sum @@ -432,6 +432,7 @@ github.com/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= diff --git a/pkg/util/buildutil/semver.go b/pkg/util/buildutil/semver.go index b43d2b844..152cb282c 100644 --- a/pkg/util/buildutil/semver.go +++ b/pkg/util/buildutil/semver.go @@ -56,28 +56,28 @@ func PyPiVersionFromNpmVersion(s string) (string, error) { return b.String(), nil case rcVersionRegex.MatchString(s): capMap := captureToMap(rcVersionRegex, s) - mustFprintf(&b, "%s.rc%s", capMap["version"], capMap["rcN"]) + mustFprintf(&b, "%s-rc%s", capMap["version"], capMap["rcN"]) if capMap["dirty"] != "" { mustFprintf(&b, "+dirty") } return b.String(), nil case betaVersionRegex.MatchString(s): capMap := captureToMap(betaVersionRegex, s) - mustFprintf(&b, "%s.b%s", capMap["version"], capMap["betaN"]) + mustFprintf(&b, "%s-b%s", capMap["version"], capMap["betaN"]) if capMap["dirty"] != "" { mustFprintf(&b, "+dirty") } return b.String(), nil case alphaVersionRegex.MatchString(s): capMap := captureToMap(alphaVersionRegex, s) - mustFprintf(&b, "%s.a%s", capMap["version"], capMap["time"]) + mustFprintf(&b, "%s-a%s", capMap["version"], capMap["time"]) if capMap["dirty"] != "" { mustFprintf(&b, "+dirty") } return b.String(), nil case devVersionRegex.MatchString(s): capMap := captureToMap(devVersionRegex, s) - mustFprintf(&b, "%s.dev%s", capMap["version"], capMap["time"]) + mustFprintf(&b, "%s-dev%s", capMap["version"], capMap["time"]) if capMap["dirty"] != "" { mustFprintf(&b, "+dirty") } diff --git a/pkg/util/buildutil/semver_test.go b/pkg/util/buildutil/semver_test.go index 85410b454..0d85add6f 100644 --- a/pkg/util/buildutil/semver_test.go +++ b/pkg/util/buildutil/semver_test.go @@ -17,6 +17,7 @@ package buildutil import ( "testing" + "github.com/blang/semver" "github.com/stretchr/testify/assert" ) @@ -24,16 +25,18 @@ func TestVersions(t *testing.T) { cases := map[string]string{ "v0.12.0": "0.12.0", "v0.12.0+dirty": "0.12.0+dirty", - "v0.12.0-rc.1": "0.12.0.rc1", - "v0.12.0-rc.1+dirty": "0.12.0.rc1+dirty", - "v0.12.1-dev.1524606809+gf2f1178b": "0.12.1.dev1524606809", - "v0.12.1-dev.1524606809+gf2f1178b.dirty": "0.12.1.dev1524606809+dirty", - "v1.14.0-alpha.1584648098+gce192898.dirty": "1.14.0.a1584648098+dirty", + "v0.12.0-rc.1": "0.12.0-rc1", + "v0.12.0-rc.1+dirty": "0.12.0-rc1+dirty", + "v0.12.1-dev.1524606809+gf2f1178b": "0.12.1-dev1524606809", + "v0.12.1-dev.1524606809+gf2f1178b.dirty": "0.12.1-dev1524606809+dirty", + "v1.14.0-alpha.1584648098+gce192898.dirty": "1.14.0-a1584648098+dirty", } for ver, expected := range cases { p, err := PyPiVersionFromNpmVersion(ver) assert.NoError(t, err) assert.Equal(t, expected, p, "failed parsing '%s'", ver) + _, err = semver.ParseTolerant(p) + assert.NoError(t, err) } }