Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [1.25.x, 1.26.x]
go-version: [1.26.x, 1.27.x]
steps:
- name: Checkout Code
uses: actions/checkout@v7
Expand All @@ -32,5 +32,5 @@ jobs:
# conflicting guidance, run only on the most recent supported version.
# For the same reason, only check generated code on the most recent
# supported version.
if: matrix.go-version == '1.26.x'
if: matrix.go-version == '1.27.x'
run: make checkgenerate && make lint
3 changes: 3 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,12 @@ linters:
- depguard # unnecessary for small libraries
- err113 # way too noisy
- exhaustruct # many exceptions
- exhaustruct_v5 # many exceptions
- funlen # rely on code review to limit function length
- gochecknoglobals # many exceptions
- gocognit # dubious "cognitive overhead" quantification
- goconst # many exceptions
- gomodguard # replaced by gomodguard_v2
- inamedparam # not standard style
- interfacebloat # many exceptions
- ireturn # "accept interfaces, return structs" isn't ironclad
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ COPYRIGHT_YEARS := 2024-2025
LICENSE_IGNORE := --ignore testdata/

BUF_VERSION := v1.67.0
GOLANGCI_LINT_VERSION := v2.11.4
GOLANGCI_LINT_VERSION := v2.13.1
#GO_GET_PKGS :=

.PHONY: help
Expand Down
2 changes: 1 addition & 1 deletion check/check.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@
// limitations under the License.

// Package check implements the SDK for custom lint and breaking change plugins.
package check // import "buf.build/go/bufplugin/check"
package check
19 changes: 9 additions & 10 deletions check/check_service_handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (
checkv1 "buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go/buf/plugin/check/v1"
descriptorv1 "buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go/buf/plugin/descriptor/v1"
"github.com/stretchr/testify/require"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/descriptorpb"
"pluginrpc.com/pluginrpc"
)
Expand All @@ -43,15 +42,15 @@ func TestCheckServiceHandlerUniqueFiles(t *testing.T) {
FileDescriptors: []*descriptorv1.FileDescriptor{
descriptorv1.FileDescriptor_builder{
FileDescriptorProto: &descriptorpb.FileDescriptorProto{
Name: proto.String("foo.proto"),
Name: new("foo.proto"),
SourceCodeInfo: &descriptorpb.SourceCodeInfo{},
},
}.Build(),
},
AgainstFileDescriptors: []*descriptorv1.FileDescriptor{
descriptorv1.FileDescriptor_builder{
FileDescriptorProto: &descriptorpb.FileDescriptorProto{
Name: proto.String("foo.proto"),
Name: new("foo.proto"),
SourceCodeInfo: &descriptorpb.SourceCodeInfo{},
},
}.Build(),
Expand All @@ -66,13 +65,13 @@ func TestCheckServiceHandlerUniqueFiles(t *testing.T) {
FileDescriptors: []*descriptorv1.FileDescriptor{
descriptorv1.FileDescriptor_builder{
FileDescriptorProto: &descriptorpb.FileDescriptorProto{
Name: proto.String("foo.proto"),
Name: new("foo.proto"),
SourceCodeInfo: &descriptorpb.SourceCodeInfo{},
},
}.Build(),
descriptorv1.FileDescriptor_builder{
FileDescriptorProto: &descriptorpb.FileDescriptorProto{
Name: proto.String("foo.proto"),
Name: new("foo.proto"),
SourceCodeInfo: &descriptorpb.SourceCodeInfo{},
},
}.Build(),
Expand All @@ -89,21 +88,21 @@ func TestCheckServiceHandlerUniqueFiles(t *testing.T) {
FileDescriptors: []*descriptorv1.FileDescriptor{
descriptorv1.FileDescriptor_builder{
FileDescriptorProto: &descriptorpb.FileDescriptorProto{
Name: proto.String("foo.proto"),
Name: new("foo.proto"),
SourceCodeInfo: &descriptorpb.SourceCodeInfo{},
},
}.Build(),
},
AgainstFileDescriptors: []*descriptorv1.FileDescriptor{
descriptorv1.FileDescriptor_builder{
FileDescriptorProto: &descriptorpb.FileDescriptorProto{
Name: proto.String("bar.proto"),
Name: new("bar.proto"),
SourceCodeInfo: &descriptorpb.SourceCodeInfo{},
},
}.Build(),
descriptorv1.FileDescriptor_builder{
FileDescriptorProto: &descriptorpb.FileDescriptorProto{
Name: proto.String("bar.proto"),
Name: new("bar.proto"),
SourceCodeInfo: &descriptorpb.SourceCodeInfo{},
},
}.Build(),
Expand Down Expand Up @@ -133,14 +132,14 @@ func TestCheckServiceHandlerNoSourceCodeInfo(t *testing.T) {
FileDescriptors: []*descriptorv1.FileDescriptor{
descriptorv1.FileDescriptor_builder{
FileDescriptorProto: &descriptorpb.FileDescriptorProto{
Name: proto.String("foo.proto"),
Name: new("foo.proto"),
},
}.Build(),
},
AgainstFileDescriptors: []*descriptorv1.FileDescriptor{
descriptorv1.FileDescriptor_builder{
FileDescriptorProto: &descriptorpb.FileDescriptorProto{
Name: proto.String("foo.proto"),
Name: new("foo.proto"),
},
}.Build(),
},
Expand Down
2 changes: 1 addition & 1 deletion descriptor/descriptor.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@
// limitations under the License.

// Package descriptor provides descriptor types.
package descriptor // import "buf.build/go/bufplugin/descriptor"
package descriptor
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
module buf.build/go/bufplugin

go 1.25.0
go 1.26.0

require (
buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.11-20250718181942-e35f9b667443.1
buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.12-20260722160903-4d94f3df3a7b.1
buf.build/go/protovalidate v1.1.3
buf.build/go/spdx v0.2.0
github.com/bufbuild/protocompile v0.14.1
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.11-20250718181942-e35f9b667443.1 h1:zQ9C3e6FtwSZUFuKAQfpIKGFk5ZuRoGt5g35Bix55sI=
buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.11-20250718181942-e35f9b667443.1/go.mod h1:1Znr6gmYBhbxWUPRrrVnSLXQsz8bvFVw1HHJq2bI3VQ=
buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.12-20260722160903-4d94f3df3a7b.1 h1:ngSJzfqK0bvnKaVhHZ58DTt6nrBiD1IdHDMHAsQQrgM=
buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.12-20260722160903-4d94f3df3a7b.1/go.mod h1:or0FXsDqcJfmWGc8Xx6cr8iAySi3CZ4o0K1+C39pTts=
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.12-20260825204119-511051f7f437.1 h1:Slv0uGxx219srASyiaI5C9cDlyG8kNDcXpTSYcuAeE4=
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.12-20260825204119-511051f7f437.1/go.mod h1:TCt1lluMFnctISJXvkIQ4x3ABrPuUKCWKyjKdkJNBpw=
buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.36.12-20241007202033-cf42259fcbfc.1 h1:iXXTQ60veYbSOKfSQHT9Q3TfZxasAgTJcbo2fnNCApE=
Expand Down
2 changes: 1 addition & 1 deletion info/info.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@
// limitations under the License.

// Package info provides plugin information.
package info // import "buf.build/go/bufplugin/info"
package info
2 changes: 1 addition & 1 deletion option/option.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@
// limitations under the License.

// Package option provides the Options type for plugins.
package option // import "buf.build/go/bufplugin/option"
package option
13 changes: 6 additions & 7 deletions option/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ import (
"reflect"

optionv1 "buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go/buf/plugin/option/v1"
"google.golang.org/protobuf/proto"
)

// EmptyOptions is an instance of Options with no keys.
Expand Down Expand Up @@ -271,19 +270,19 @@ func valueToProtoValue(value any) (*optionv1.Value, error) {
switch reflectValue := reflect.ValueOf(value); reflectValue.Kind() {
case reflect.Bool:
return optionv1.Value_builder{
BoolValue: proto.Bool(reflectValue.Bool()),
BoolValue: new(reflectValue.Bool()),
}.Build(), nil
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
return optionv1.Value_builder{
Int64Value: proto.Int64(reflectValue.Int()),
Int64Value: new(reflectValue.Int()),
}.Build(), nil
case reflect.Float32, reflect.Float64:
return optionv1.Value_builder{
DoubleValue: proto.Float64(reflectValue.Float()),
DoubleValue: new(reflectValue.Float()),
}.Build(), nil
case reflect.String:
return optionv1.Value_builder{
StringValue: proto.String(reflectValue.String()),
StringValue: new(reflectValue.String()),
}.Build(), nil
case reflect.Slice:
if t, ok := value.([]byte); ok {
Expand All @@ -304,7 +303,7 @@ func valueToProtoValue(value any) (*optionv1.Value, error) {
Values: values,
}.Build(),
}.Build(), nil
case reflect.Invalid, reflect.Uintptr, reflect.Complex64, reflect.Complex128, reflect.Array, reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Pointer | reflect.Ptr, reflect.Struct, reflect.UnsafePointer:
case reflect.Invalid, reflect.Uintptr, reflect.Complex64, reflect.Complex128, reflect.Array, reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Pointer, reflect.Struct, reflect.UnsafePointer:
return nil, fmt.Errorf("invalid type for Options value %T", value)
default:
return nil, fmt.Errorf("invalid type for Options value %T", value)
Expand Down Expand Up @@ -417,7 +416,7 @@ func validateValue(value any) error {
}
}
return nil
case reflect.Invalid, reflect.Uintptr, reflect.Complex64, reflect.Complex128, reflect.Array, reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Pointer | reflect.Ptr, reflect.Struct, reflect.UnsafePointer:
case reflect.Invalid, reflect.Uintptr, reflect.Complex64, reflect.Complex128, reflect.Array, reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Pointer, reflect.Struct, reflect.UnsafePointer:
return fmt.Errorf("invalid option value: unhandled type %T", value)
default:
return fmt.Errorf("invalid option value: unhandled type %T", value)
Expand Down
Loading