Skip to content

Commit ceb6296

Browse files
committed
chore(deps): upgrade k8s.io/gengo to v2
Migrate k8s.io/gengo -> k8s.io/gengo/v2 This required copying the extractCommentTags function because it has been deprecated in v2. v2 introduces a new ExtractFunctionStyleCommentTags function, but it has a different interface, so it's just simpler to import the original ExtractCommentTags code which is dependency free. The code generated with this tool in github.com/oauth2-proxy/oauth2-proxy/pkg/apis/options is not affected.
1 parent 32055bc commit ceb6296

File tree

5 files changed

+55
-35
lines changed

5 files changed

+55
-35
lines changed

reference-gen/go.mod

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ require (
1010
github.com/onsi/gomega v1.36.2
1111
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3
1212
github.com/spf13/pflag v1.0.5
13-
k8s.io/gengo v0.0.0-20201113003025-83324d819ded
13+
k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7
1414
k8s.io/klog/v2 v2.130.1
1515
)
1616

@@ -19,7 +19,9 @@ require (
1919
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
2020
github.com/google/go-cmp v0.7.0 // indirect
2121
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
22+
golang.org/x/mod v0.23.0 // indirect
2223
golang.org/x/net v0.35.0 // indirect
24+
golang.org/x/sync v0.11.0 // indirect
2325
golang.org/x/sys v0.30.0 // indirect
2426
golang.org/x/text v0.22.0 // indirect
2527
golang.org/x/tools v0.30.0 // indirect

reference-gen/go.sum

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,15 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
33
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
44
github.com/go-git/go-git/v5 v5.14.0 h1:/MD3lCrGjCen5WfEAzKg00MJJffKhC8gzS80ycmCi60=
55
github.com/go-git/go-git/v5 v5.14.0/go.mod h1:Z5Xhoia5PcWA3NF8vRLURn9E5FRhSl7dGj9ItW3Wk5k=
6-
github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
76
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
87
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
98
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
109
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
11-
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1210
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
1311
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
14-
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
1512
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg=
1613
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
1714
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
18-
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
1915
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
2016
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
2117
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
@@ -38,49 +34,29 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
3834
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
3935
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
4036
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
41-
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
42-
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
43-
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
44-
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
4537
golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM=
4638
golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
47-
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
48-
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
49-
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
5039
golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8=
5140
golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk=
52-
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
53-
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
5441
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
5542
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
56-
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
57-
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
5843
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
5944
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
60-
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
6145
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
6246
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
63-
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
64-
golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
6547
golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY=
6648
golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY=
67-
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
68-
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
69-
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
7049
google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk=
7150
google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
7251
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
7352
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
7453
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
7554
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
7655
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
77-
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
7856
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
7957
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
8058
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
81-
k8s.io/gengo v0.0.0-20201113003025-83324d819ded h1:JApXBKYyB7l9xx+DK7/+mFjC7A9Bt5A93FPvFD0HIFE=
82-
k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
83-
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
59+
k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7 h1:2OX19X59HxDprNCVrWi6jb7LW1PoqTlYqEq5H2oetog=
60+
k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU=
8461
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
8562
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
86-
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=

reference-gen/pkg/generator/generator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"path/filepath"
99
"text/template"
1010

11-
"k8s.io/gengo/types"
11+
"k8s.io/gengo/v2/types"
1212
"k8s.io/klog/v2"
1313
)
1414

reference-gen/pkg/generator/references.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@ package generator
33
import (
44
"fmt"
55

6-
"k8s.io/gengo/parser"
7-
"k8s.io/gengo/types"
6+
"k8s.io/gengo/v2/parser"
7+
"k8s.io/gengo/v2/types"
88
)
99

1010
// loadPackage loads and parses the given package.
1111
func loadPackage(packageName string) (*types.Package, error) {
1212
b := parser.New()
1313
// the following may silently fail (turn on -v=4 to see logs)
14-
if err := b.AddDir(packageName); err != nil {
14+
if err := b.LoadPackages(packageName); err != nil {
1515
return nil, err
1616
}
1717

18-
universe, err := b.FindTypes()
18+
universe, err := b.NewUniverse()
1919
if err != nil {
2020
return nil, fmt.Errorf("failed to find types for package: %v", err)
2121
}

reference-gen/pkg/generator/utils.go

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"strings"
88
"unicode"
99

10-
"k8s.io/gengo/types"
10+
"k8s.io/gengo/v2/types"
1111
"k8s.io/klog/v2"
1212
)
1313

@@ -111,11 +111,53 @@ func aliasDisplayNameFunc(knownTypes typeSet) func(t *types.Type) string {
111111
}
112112
}
113113

114+
// extractCommentTags parses comments for lines of the form:
115+
//
116+
// 'marker' + "key=value".
117+
//
118+
// Values are optional; "" is the default. A tag can be specified more than
119+
// one time and all values are returned. If the resulting map has an entry for
120+
// a key, the value (a slice) is guaranteed to have at least 1 element.
121+
//
122+
// Example: if you pass "+" for 'marker', and the following lines are in
123+
// the comments:
124+
//
125+
// +foo=value1
126+
// +bar
127+
// +foo=value2
128+
// +baz="qux"
129+
//
130+
// Then this function will return:
131+
//
132+
// map[string][]string{"foo":{"value1, "value2"}, "bar": {""}, "baz": {"qux"}}
133+
//
134+
// Source: https://github.com/kubernetes/gengo/blob/1244d31929d7/types/comments.go#L42
135+
func extractCommentTags(marker string, lines []string) map[string][]string {
136+
out := map[string][]string{}
137+
for _, line := range lines {
138+
line = strings.Trim(line, " ")
139+
if len(line) == 0 {
140+
continue
141+
}
142+
if !strings.HasPrefix(line, marker) {
143+
continue
144+
}
145+
// TODO: we could support multiple values per key if we split on spaces
146+
kv := strings.SplitN(line[len(marker):], "=", 2)
147+
if len(kv) == 2 {
148+
out[kv[0]] = append(out[kv[0]], kv[1])
149+
} else if len(kv) == 1 {
150+
out[kv[0]] = append(out[kv[0]], "")
151+
}
152+
}
153+
return out
154+
}
155+
114156
// aliasDisplayName allows types to replace their alias with an alternate
115157
// alias display name.
116158
// This can be useful when a type has a custom marshalling rule.
117159
func aliasDisplayName(t *types.Type, knownTypes typeSet) string {
118-
tags := types.ExtractCommentTags("+", t.CommentLines)
160+
tags := extractCommentTags("+", t.CommentLines)
119161
if alias, ok := tags["reference-gen:alias-name"]; ok {
120162
// There should only be one entry
121163
return alias[0]
@@ -184,7 +226,7 @@ func hideType(t *types.Type) bool {
184226

185227
// isOptionalMember determines if a member is marked optional
186228
func isOptionalMember(m types.Member) bool {
187-
tags := types.ExtractCommentTags("+", m.CommentLines)
229+
tags := extractCommentTags("+", m.CommentLines)
188230
_, ok := tags["optional"]
189231
return ok
190232
}

0 commit comments

Comments
 (0)