fix python versioning

This commit is contained in:
evanboyle 2020-03-19 15:59:57 -07:00
parent 163444bce6
commit eea42b8a67
3 changed files with 13 additions and 9 deletions

View file

@ -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=

View file

@ -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")
}

View file

@ -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)
}
}