Skip to content

Commit 473fc80

Browse files
authored
Support protoopaque builds (#18)
1 parent ad1c581 commit 473fc80

7 files changed

Lines changed: 27 additions & 26 deletions

File tree

‎Makefile‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ clean: ## Delete intermediate build artifacts
3535
.PHONY: test
3636
test: build $(BIN)/echo-plugin ## Run unit tests
3737
go test -vet=off -race -cover ./...
38+
@# Also run against the Go Opaque API, which the protoopaque build tag selects
39+
@# for the hybrid-generated Protobuf packages we depend on.
40+
go test -vet=off -race -cover -tags protoopaque ./...
3841

3942
.PHONY: build
4043
build: generate ## Build all packages

‎error.go‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,15 +113,15 @@ func (e *Error) ToProto() *pluginrpcv1.Error {
113113
pluginrpcError := validateError(e)
114114
protoCode, err := pluginrpcError.Code().ToProto()
115115
if err != nil {
116-
return &pluginrpcv1.Error{
116+
return pluginrpcv1.Error_builder{
117117
Code: pluginrpcv1.Code_CODE_INTERNAL,
118118
Message: fmt.Sprintf("Error created with invalid code: %s: %s", e.underlying.Error(), err.Error()),
119-
}
119+
}.Build()
120120
}
121-
return &pluginrpcv1.Error{
121+
return pluginrpcv1.Error_builder{
122122
Code: protoCode,
123123
Message: pluginrpcError.Unwrap().Error(),
124-
}
124+
}.Build()
125125
}
126126

127127
// Error implements error.

‎go.mod‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
module pluginrpc.com/pluginrpc
22

3-
go 1.21
3+
go 1.23
44

55
toolchain go1.23.0
66

77
require (
8-
buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.34.2-20240828222655-5345c0a56177.2
8+
buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.36.11-20241007202033-cf42259fcbfc.1
99
github.com/mattn/go-isatty v0.0.20
1010
github.com/spf13/pflag v1.0.5
1111
github.com/stretchr/testify v1.9.0
12-
google.golang.org/protobuf v1.34.2
12+
google.golang.org/protobuf v1.36.11
1313
)
1414

1515
require (
16-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240717164558-a6c49f84cc0f.2 // indirect
16+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20240717164558-a6c49f84cc0f.1 // indirect
1717
github.com/davecgh/go-spew v1.1.1 // indirect
1818
github.com/pmezard/go-difflib v1.0.0 // indirect
1919
golang.org/x/sys v0.25.0 // indirect

‎go.sum‎

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240717164558-a6c49f84cc0f.2 h1:SZRVx928rbYZ6hEKUIN+vtGDkl7uotABRWGY4OAg5gM=
2-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240717164558-a6c49f84cc0f.2/go.mod h1:ylS4c28ACSI59oJrOdW4pHS4n0Hw4TgSPHn8rpHl4Yw=
3-
buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.34.2-20240828222655-5345c0a56177.2 h1:oSi+Adw4xvIjXrW8eY8QGR3sBdfWeY5HN/RefnRt52M=
4-
buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.34.2-20240828222655-5345c0a56177.2/go.mod h1:GjH0gjlY/ns16X8d6eaXV2W+6IFwsO5Ly9WVnzyd1E0=
1+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20240717164558-a6c49f84cc0f.1 h1:m9A4Dxb2yddxbZSEXFr0FwbvI4Cb8zsGtOqLY0QcEA0=
2+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20240717164558-a6c49f84cc0f.1/go.mod h1:tvtbpgaVXZX4g6Pn+AnzFycuRK3MOz5HJfEGeEllXYM=
3+
buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.36.11-20241007202033-cf42259fcbfc.1 h1:iGPvEJltOXUMANWf0zajcRcbiOXLD90ZwPUFvbcuv6Q=
4+
buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.36.11-20241007202033-cf42259fcbfc.1/go.mod h1:nWVKKRA29zdt4uvkjka3i/y4mkrswyWwiu0TbdX0zts=
55
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
66
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
7-
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
8-
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
7+
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
8+
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
99
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
1010
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
1111
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@@ -17,10 +17,8 @@ github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8
1717
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1818
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
1919
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
20-
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
21-
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
22-
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
23-
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
20+
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
21+
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
2422
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
2523
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
2624
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

‎procedure.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ func NewProcedureForProto(protoProcedure *pluginrpcv1.Procedure) (Procedure, err
5757

5858
// NewProtoProcedure returns a new pluginrpcv1.Procedure for the given Procedure.
5959
func NewProtoProcedure(procedure Procedure) *pluginrpcv1.Procedure {
60-
return &pluginrpcv1.Procedure{
60+
return pluginrpcv1.Procedure_builder{
6161
Path: procedure.Path(),
6262
Args: procedure.Args(),
63-
}
63+
}.Build()
6464
}
6565

6666
// ProcedureOption is an option for a new Procedure.

‎spec.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ func NewProtoSpec(spec Spec) *pluginrpcv1.Spec {
6565
for i, procedure := range procedures {
6666
protoProcedures[i] = NewProtoProcedure(procedure)
6767
}
68-
return &pluginrpcv1.Spec{
68+
return pluginrpcv1.Spec_builder{
6969
Procedures: protoProcedures,
70-
}
70+
}.Build()
7171
}
7272

7373
// MergeSpecs merges the given Specs.

‎wire.go‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ func marshalRequest(format Format, requestValue any) ([]byte, error) {
3232
if err != nil {
3333
return nil, err
3434
}
35-
protoRequest := &pluginrpcv1.Request{
35+
protoRequest := pluginrpcv1.Request_builder{
3636
Value: anyRequestValue,
37-
}
37+
}.Build()
3838
codec, err := codecForFormat(format)
3939
if err != nil {
4040
return nil, err
@@ -77,10 +77,10 @@ func marshalResponse(format Format, responseValue any, err error) ([]byte, error
7777
return nil, err
7878
}
7979
}
80-
protoResponse := &pluginrpcv1.Response{
80+
protoResponse := pluginrpcv1.Response_builder{
8181
Value: anyResponseValue,
8282
Error: WrapError(err).ToProto(),
83-
}
83+
}.Build()
8484
codec, err := codecForFormat(format)
8585
if err != nil {
8686
return nil, err

0 commit comments

Comments
 (0)