Skip to content

Commit

Permalink
fix(gengapic): use gax GoVersion (#1359)
Browse files Browse the repository at this point in the history
  • Loading branch information
noahdietz authored Jun 13, 2023
1 parent 34af96c commit 9116eca
Show file tree
Hide file tree
Showing 20 changed files with 58 additions and 334 deletions.
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ require (
gitlab.com/golang-commonmark/mdurl v0.0.0-20191124015652-932350d1cb84 // indirect
gitlab.com/golang-commonmark/puny v0.0.0-20191124015043-9f83538fa04f // indirect
golang.org/x/net v0.10.0 // indirect
golang.org/x/sync v0.2.0 // indirect
golang.org/x/sys v0.8.0 // indirect
golang.org/x/text v0.9.0 // indirect
google.golang.org/grpc v1.55.0 // indirect
Expand Down
13 changes: 2 additions & 11 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
cloud.google.com/go/iam v1.0.1 h1:lyeCAU6jpnVNrE9zGQkTl3WgNgK/X+uWwaw0kynZJMU=
cloud.google.com/go/iam v1.0.1/go.mod h1:yR3tmSL8BcZB4bxByRv2jkSIahVmCtfKZwLYGBalRE8=
cloud.google.com/go/iam v1.1.0 h1:67gSqaPukx7O8WLLHMa0PNs3EBGd2eE4d+psbO/CO94=
cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk=
cloud.google.com/go/longrunning v0.4.2 h1:WDKiiNXFTaQ6qz/G8FCOkuY9kJmOJGY67wPUC1M2RbE=
cloud.google.com/go/longrunning v0.4.2/go.mod h1:OHrnaYyLUV6oqwh0xiS7e5sLQhP1m0QU9R+WhGDMgIQ=
cloud.google.com/go/longrunning v0.5.0 h1:DK8BH0+hS+DIvc9a2TPnteUievsTCH4ORMAASSb7JcQ=
cloud.google.com/go/longrunning v0.5.0/go.mod h1:0JNuqRShmscVAhIACGtskSAWtqtOoPkwP0YF1oVEchc=
github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA=
Expand Down Expand Up @@ -32,22 +28,17 @@ gitlab.com/golang-commonmark/puny v0.0.0-20191124015043-9f83538fa04f h1:Wku8eEde
gitlab.com/golang-commonmark/puny v0.0.0-20191124015043-9f83538fa04f/go.mod h1:Tiuhl+njh/JIg0uS/sOJVYi0x2HEa5rc1OAaVsb5tAs=
gitlab.com/opennota/wd v0.0.0-20180912061657-c5d65f63c638 h1:uPZaMiz6Sz0PZs3IZJWpU5qHKGNy///1pacZC9txiUI=
gitlab.com/opennota/wd v0.0.0-20180912061657-c5d65f63c638/go.mod h1:EGRJaqe2eO9XGmFtQCvV3Lm9NLico3UhFwUpCG/+mVU=
golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/genproto v0.0.0-20230526203410-71b5a4ffd15e h1:Ao9GzfUMPH3zjVfzXG5rlWlk+Q8MXWKwWpwVQE1MXfw=
google.golang.org/genproto v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk=
google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc h1:8DyZCyvI8mE1IdLy/60bS+52xfymkE72wv1asokgtao=
google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64=
google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc h1:kVKPf/IiYSBWEWtkIn6wZXwWGCnLKcC8oWfZvXjsGnM=
Expand Down
45 changes: 0 additions & 45 deletions internal/gengapic/doc_file.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,6 @@ func (g *generator) genDocFile(year int, scopes []string, serv *descriptor.Servi
if hasREST {
p("%s%q", "\t", "net/http")
}
p("%s%q", "\t", "runtime")
p("%s%q", "\t", "strings")
p("%s%q", "\t", "unicode")
p("")
p("%s%q", "\t", "google.golang.org/api/option")
p("%s%q", "\t", "google.golang.org/grpc/metadata")
Expand Down Expand Up @@ -168,48 +165,6 @@ func (g *generator) genDocFile(year int, scopes []string, serv *descriptor.Servi
p(" }")
p("}")

// versionGo
{
p("")
p("// versionGo returns the Go runtime version. The returned string")
p("// has no whitespace, suitable for reporting in header.")
p("func versionGo() string {")
p(" const develPrefix = %q", "devel +")
p("")
p(" s := runtime.Version()")
p(" if strings.HasPrefix(s, develPrefix) {")
p(" s = s[len(develPrefix):]")
p(" if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 {")
p(" s = s[:p]")
p(" }")
p(" return s")
p(" }")
p("")
p(" notSemverRune := func(r rune) bool {")
p(" return !strings.ContainsRune(%q, r)", "0123456789.")
p(" }")
p("")
p(" if strings.HasPrefix(s, %q) {", "go1")
p(" s = s[2:]")
p(" var prerelease string")
p(" if p := strings.IndexFunc(s, notSemverRune); p >= 0 {")
p(" s, prerelease = s[:p], s[p:]")
p(" }")
p(" if strings.HasSuffix(s, %q) {", ".")
p(" s += %q", "0")
p(" } else if strings.Count(s, %q) < 2 {", ".")
p(" s += %q", ".0")
p(" }")
p(" if prerelease != %q {", "")
p(" s += %q + prerelease", "-")
p(" }")
p(" return s")
p(" }")
p(" return %q", "UNKNOWN")
p("}")
p("")
}

if hasREST {
// buildHeaders from context and other metadata helper.
p("// buildHeaders extracts metadata from the outgoing context, joins it with any other")
Expand Down
2 changes: 1 addition & 1 deletion internal/gengapic/gengrpc.go
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ func (g *generator) grpcClientUtilities(serv *descriptor.ServiceDescriptorProto,
p("// the `x-goog-api-client` header passed on each request. Intended for")
p("// use by Google-written clients.")
p("func (c *%s) setGoogleClientInfo(keyval ...string) {", lowcaseServName)
p(` kv := append([]string{"gl-go", versionGo()}, keyval...)`)
p(` kv := append([]string{"gl-go", gax.GoVersion}, keyval...)`)
p(` kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version)`)
p(` c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))`)
p("}")
Expand Down
2 changes: 1 addition & 1 deletion internal/gengapic/genrest.go
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ func (g *generator) restClientUtilities(serv *descriptor.ServiceDescriptorProto,
p("// the `x-goog-api-client` header passed on each request. Intended for")
p("// use by Google-written clients.")
p("func (c *%s) setGoogleClientInfo(keyval ...string) {", lowcaseServName)
p(` kv := append([]string{"gl-go", versionGo()}, keyval...)`)
p(` kv := append([]string{"gl-go", gax.GoVersion}, keyval...)`)
p(` kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN")`)
p(` c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))`)
p("}")
Expand Down
2 changes: 1 addition & 1 deletion internal/gengapic/testdata/custom_op_init.want
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ func NewRESTClient(ctx context.Context, opts ...option.ClientOption) (*Client, e
// the `x-goog-api-client` header passed on each request. Intended for
// use by Google-written clients.
func (c *restClient) setGoogleClientInfo(keyval ...string) {
kv := append([]string{"gl-go", versionGo()}, keyval...)
kv := append([]string{"gl-go", gax.GoVersion}, keyval...)
kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN")
c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
}
Expand Down
4 changes: 2 additions & 2 deletions internal/gengapic/testdata/deprecated_client_init.want
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ func (c *gRPCClient) Connection() *grpc.ClientConn {
// the `x-goog-api-client` header passed on each request. Intended for
// use by Google-written clients.
func (c *gRPCClient) setGoogleClientInfo(keyval ...string) {
kv := append([]string{"gl-go", versionGo()}, keyval...)
kv := append([]string{"gl-go", gax.GoVersion}, keyval...)
kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version)
c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
}
Expand Down Expand Up @@ -166,7 +166,7 @@ func NewRESTClient(ctx context.Context, opts ...option.ClientOption) (*Client, e
// the `x-goog-api-client` header passed on each request. Intended for
// use by Google-written clients.
func (c *restClient) setGoogleClientInfo(keyval ...string) {
kv := append([]string{"gl-go", versionGo()}, keyval...)
kv := append([]string{"gl-go", gax.GoVersion}, keyval...)
kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN")
c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
}
Expand Down
41 changes: 0 additions & 41 deletions internal/gengapic/testdata/doc_file.want
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,6 @@ package awesome // import "path/to/awesome"
import (
"context"
"net/http"
"runtime"
"strings"
"unicode"

"google.golang.org/api/option"
"google.golang.org/grpc/metadata"
Expand Down Expand Up @@ -129,44 +126,6 @@ func DefaultAuthScopes() []string {
"https://zip.zap.com/auth",
}
}

// versionGo returns the Go runtime version. The returned string
// has no whitespace, suitable for reporting in header.
func versionGo() string {
const develPrefix = "devel +"

s := runtime.Version()
if strings.HasPrefix(s, develPrefix) {
s = s[len(develPrefix):]
if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 {
s = s[:p]
}
return s
}

notSemverRune := func(r rune) bool {
return !strings.ContainsRune("0123456789.", r)
}

if strings.HasPrefix(s, "go1") {
s = s[2:]
var prerelease string
if p := strings.IndexFunc(s, notSemverRune); p >= 0 {
s, prerelease = s[:p], s[p:]
}
if strings.HasSuffix(s, ".") {
s += "0"
} else if strings.Count(s, ".") < 2 {
s += ".0"
}
if prerelease != "" {
s += "-" + prerelease
}
return s
}
return "UNKNOWN"
}

// buildHeaders extracts metadata from the outgoing context, joins it with any other
// given metadata, and converts them into a http.Header.
func buildHeaders(ctx context.Context, mds ...metadata.MD) http.Header {
Expand Down
41 changes: 0 additions & 41 deletions internal/gengapic/testdata/doc_file_alpha.want
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,6 @@ package awesome // import "path/to/awesome"
import (
"context"
"net/http"
"runtime"
"strings"
"unicode"

"google.golang.org/api/option"
"google.golang.org/grpc/metadata"
Expand Down Expand Up @@ -131,44 +128,6 @@ func DefaultAuthScopes() []string {
"https://zip.zap.com/auth",
}
}

// versionGo returns the Go runtime version. The returned string
// has no whitespace, suitable for reporting in header.
func versionGo() string {
const develPrefix = "devel +"

s := runtime.Version()
if strings.HasPrefix(s, develPrefix) {
s = s[len(develPrefix):]
if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 {
s = s[:p]
}
return s
}

notSemverRune := func(r rune) bool {
return !strings.ContainsRune("0123456789.", r)
}

if strings.HasPrefix(s, "go1") {
s = s[2:]
var prerelease string
if p := strings.IndexFunc(s, notSemverRune); p >= 0 {
s, prerelease = s[:p], s[p:]
}
if strings.HasSuffix(s, ".") {
s += "0"
} else if strings.Count(s, ".") < 2 {
s += ".0"
}
if prerelease != "" {
s += "-" + prerelease
}
return s
}
return "UNKNOWN"
}

// buildHeaders extracts metadata from the outgoing context, joins it with any other
// given metadata, and converts them into a http.Header.
func buildHeaders(ctx context.Context, mds ...metadata.MD) http.Header {
Expand Down
41 changes: 0 additions & 41 deletions internal/gengapic/testdata/doc_file_alpha_emptyservice.want
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,6 @@ package awesome // import "path/to/awesome"

import (
"context"
"runtime"
"strings"
"unicode"

"google.golang.org/api/option"
"google.golang.org/grpc/metadata"
Expand Down Expand Up @@ -103,41 +100,3 @@ func DefaultAuthScopes() []string {
"https://zip.zap.com/auth",
}
}

// versionGo returns the Go runtime version. The returned string
// has no whitespace, suitable for reporting in header.
func versionGo() string {
const develPrefix = "devel +"

s := runtime.Version()
if strings.HasPrefix(s, develPrefix) {
s = s[len(develPrefix):]
if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 {
s = s[:p]
}
return s
}

notSemverRune := func(r rune) bool {
return !strings.ContainsRune("0123456789.", r)
}

if strings.HasPrefix(s, "go1") {
s = s[2:]
var prerelease string
if p := strings.IndexFunc(s, notSemverRune); p >= 0 {
s, prerelease = s[:p], s[p:]
}
if strings.HasSuffix(s, ".") {
s += "0"
} else if strings.Count(s, ".") < 2 {
s += ".0"
}
if prerelease != "" {
s += "-" + prerelease
}
return s
}
return "UNKNOWN"
}

41 changes: 0 additions & 41 deletions internal/gengapic/testdata/doc_file_beta.want
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,6 @@ package awesome // import "path/to/awesome"
import (
"context"
"net/http"
"runtime"
"strings"
"unicode"

"google.golang.org/api/option"
"google.golang.org/grpc/metadata"
Expand Down Expand Up @@ -131,44 +128,6 @@ func DefaultAuthScopes() []string {
"https://zip.zap.com/auth",
}
}

// versionGo returns the Go runtime version. The returned string
// has no whitespace, suitable for reporting in header.
func versionGo() string {
const develPrefix = "devel +"

s := runtime.Version()
if strings.HasPrefix(s, develPrefix) {
s = s[len(develPrefix):]
if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 {
s = s[:p]
}
return s
}

notSemverRune := func(r rune) bool {
return !strings.ContainsRune("0123456789.", r)
}

if strings.HasPrefix(s, "go1") {
s = s[2:]
var prerelease string
if p := strings.IndexFunc(s, notSemverRune); p >= 0 {
s, prerelease = s[:p], s[p:]
}
if strings.HasSuffix(s, ".") {
s += "0"
} else if strings.Count(s, ".") < 2 {
s += ".0"
}
if prerelease != "" {
s += "-" + prerelease
}
return s
}
return "UNKNOWN"
}

// buildHeaders extracts metadata from the outgoing context, joins it with any other
// given metadata, and converts them into a http.Header.
func buildHeaders(ctx context.Context, mds ...metadata.MD) http.Header {
Expand Down
Loading

0 comments on commit 9116eca

Please sign in to comment.