Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade protobuf-go and protoc-gen-go #3653

Merged
merged 2 commits into from
Feb 26, 2025
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
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ require (
golang.org/x/sync v0.11.0
golang.org/x/term v0.29.0
golang.org/x/tools v0.30.0
google.golang.org/protobuf v1.36.4
google.golang.org/protobuf v1.36.5
gopkg.in/yaml.v3 v3.0.1
pluginrpc.com/pluginrpc v0.5.0
)
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -308,8 +308,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20250127172529-29210b9bc287 h1:
google.golang.org/genproto/googleapis/rpc v0.0.0-20250127172529-29210b9bc287/go.mod h1:8BS3B93F/U1juMFq9+EDk+qOT5CO1R9IzXxG3PTqiRk=
google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ=
google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw=
google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM=
google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
Expand Down
30 changes: 23 additions & 7 deletions make/go/dep_golangci_lint.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,35 @@ $(call _conditional_include,$(MAKEGO)/base.mk)
$(call _assert_var,CACHE_VERSIONS)
$(call _assert_var,CACHE_BIN)

# We want to ensure we rebuild golangci-lint every time we require a new Go minor version.
# Otherwise, the cached version may not support the latest language features.
GOLANGCI_LINT_GO_VERSION := $(shell go list -m -f '{{.GoVersion}}' | cut -d'.' -f1-2)
ifeq ($(UNAME_OS),Darwin)
GOLANGCI_LINT_OS := darwin
else ifeq ($(UNAME_OS),Linux)
GOLANGCI_LINT_OS := linux
endif

ifeq ($(UNAME_ARCH),x86_64)
GOLANGCI_LINT_ARCH := amd64
else ifeq ($(UNAME_ARCH),arm64)
GOLANGCI_LINT_ARCH := arm64
else ifeq ($(UNAME_ARCH),aarch64)
GOLANGCI_LINT_ARCH := arm64
else
GOLANGCI_LINT_ARCH := $(UNAME_ARCH)
endif

# Settable
# https://github.com/golangci/golangci-lint/releases 20250103 checked 20250124
# https://github.com/golangci/golangci-lint/releases 20250212 checked 20250212
# Contrast golangci-lint configuration with the one in https://github.com/connectrpc/connect-go/blob/main/.golangci.yml when upgrading
GOLANGCI_LINT_VERSION ?= v1.63.4
GOLANGCI_LINT_VERSION ?= v1.64.3

GOLANGCI_LINT := $(CACHE_VERSIONS)/golangci-lint/$(GOLANGCI_LINT_VERSION)-go$(GOLANGCI_LINT_GO_VERSION)
GOLANGCI_LINT := $(CACHE_VERSIONS)/golangci-lint/$(GOLANGCI_LINT_VERSION)
$(GOLANGCI_LINT):
@rm -f $(CACHE_BIN)/golangci-lint
GOBIN=$(CACHE_BIN) go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION)
$(eval GOLANGCI_LINT_TMP := $(shell mktemp -d))
curl -fsSL -o $(GOLANGCI_LINT_TMP)/golangci-lint.tar.gz \
https://github.com/golangci/golangci-lint/releases/download/$(GOLANGCI_LINT_VERSION)/golangci-lint-$(subst v,,$(GOLANGCI_LINT_VERSION))-$(GOLANGCI_LINT_OS)-$(GOLANGCI_LINT_ARCH).tar.gz
cd $(GOLANGCI_LINT_TMP); tar zxf $(GOLANGCI_LINT_TMP)/golangci-lint.tar.gz --strip-components 1 && mv golangci-lint $(CACHE_BIN)/golangci-lint
@rm -rf $(GOLANGCI_LINT_TMP)
@rm -rf $(dir $(GOLANGCI_LINT))
@mkdir -p $(dir $(GOLANGCI_LINT))
@touch $(GOLANGCI_LINT)
Expand Down
4 changes: 2 additions & 2 deletions make/go/dep_protoc_gen_go.mk
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ $(call _assert_var,CACHE_VERSIONS)
$(call _assert_var,CACHE_BIN)

# Settable
# https://github.com/protocolbuffers/protobuf-go/releases 20250124 checked 20250124
PROTOC_GEN_GO_VERSION ?= v1.36.4
# https://github.com/protocolbuffers/protobuf-go/releases 20250206 checked 20250210
PROTOC_GEN_GO_VERSION ?= v1.36.5

GO_GET_PKGS := $(GO_GET_PKGS) \
google.golang.org/protobuf/proto@$(PROTOC_GEN_GO_VERSION)
Expand Down
4 changes: 0 additions & 4 deletions private/buf/cmd/buf/buf_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ var (
{ID: "FIELD_LOWER_SNAKE_CASE", Categories: []string{"BASIC", "STANDARD"}, Default: true, Purpose: "Checks that field names are lower_snake_case."},
{ID: "FIELD_NOT_REQUIRED", Categories: []string{"BASIC", "STANDARD"}, Default: true, Purpose: "Checks that fields are not configured to be required."},
{ID: "IMPORT_NO_PUBLIC", Categories: []string{"BASIC", "STANDARD"}, Default: true, Purpose: "Checks that imports are not public."},
{ID: "IMPORT_NO_WEAK", Categories: []string{"BASIC", "STANDARD"}, Default: true, Purpose: "Checks that imports are not weak."},
{ID: "IMPORT_USED", Categories: []string{"BASIC", "STANDARD"}, Default: true, Purpose: "Checks that imports are used."},
{ID: "MESSAGE_PASCAL_CASE", Categories: []string{"BASIC", "STANDARD"}, Default: true, Purpose: "Checks that messages are PascalCase."},
{ID: "ONEOF_LOWER_SNAKE_CASE", Categories: []string{"BASIC", "STANDARD"}, Default: true, Purpose: "Checks that oneof names are lower_snake_case."},
Expand Down Expand Up @@ -679,7 +678,6 @@ ENUM_PASCAL_CASE BASIC, STANDARD * Checks that
ENUM_VALUE_UPPER_SNAKE_CASE BASIC, STANDARD * Checks that enum values are UPPER_SNAKE_CASE.
FIELD_LOWER_SNAKE_CASE BASIC, STANDARD * Checks that field names are lower_snake_case.
IMPORT_NO_PUBLIC BASIC, STANDARD * Checks that imports are not public.
IMPORT_NO_WEAK BASIC, STANDARD * Checks that imports are not weak.
IMPORT_USED BASIC, STANDARD * Checks that imports are used.
MESSAGE_PASCAL_CASE BASIC, STANDARD * Checks that messages are PascalCase.
ONEOF_LOWER_SNAKE_CASE BASIC, STANDARD * Checks that oneof names are lower_snake_case.
Expand Down Expand Up @@ -876,7 +874,6 @@ PACKAGE_SAME_SWIFT_PREFIX MINIMAL, BASIC, STANDARD, PACKAGE_AFFINITY
ENUM_NO_ALLOW_ALIAS MINIMAL, BASIC, STANDARD, SENSIBLE * Checks that enums do not have the allow_alias option set.
FIELD_NO_DESCRIPTOR MINIMAL, BASIC, STANDARD, SENSIBLE * Checks that field names are not any capitalization of "descriptor" with any number of prefix or suffix underscores.
IMPORT_NO_PUBLIC MINIMAL, BASIC, STANDARD, SENSIBLE * Checks that imports are not public.
IMPORT_NO_WEAK MINIMAL, BASIC, STANDARD, SENSIBLE * Checks that imports are not weak.
PACKAGE_DEFINED MINIMAL, BASIC, STANDARD, SENSIBLE * Checks that all files have a package defined.
ENUM_PASCAL_CASE BASIC, STANDARD, STYLE_BASIC, STYLE_STANDARD * Checks that enums are PascalCase.
ENUM_VALUE_UPPER_SNAKE_CASE BASIC, STANDARD, STYLE_BASIC, STYLE_STANDARD * Checks that enum values are UPPER_SNAKE_CASE.
Expand Down Expand Up @@ -933,7 +930,6 @@ ENUM_VALUE_UPPER_SNAKE_CASE BASIC, STANDARD * Checks tha
FIELD_LOWER_SNAKE_CASE BASIC, STANDARD * Checks that field names are lower_snake_case.
FIELD_NOT_REQUIRED BASIC, STANDARD * Checks that fields are not configured to be required.
IMPORT_NO_PUBLIC BASIC, STANDARD * Checks that imports are not public.
IMPORT_NO_WEAK BASIC, STANDARD * Checks that imports are not weak.
IMPORT_USED BASIC, STANDARD * Checks that imports are used.
MESSAGE_PASCAL_CASE BASIC, STANDARD * Checks that messages are PascalCase.
ONEOF_LOWER_SNAKE_CASE BASIC, STANDARD * Checks that oneof names are lower_snake_case.
Expand Down
6 changes: 3 additions & 3 deletions private/bufpkg/bufcheck/bufcheckserver/bufcheckserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@ var (
bufcheckserverbuild.LintFieldNoDescriptorRuleSpecBuilder.Build(true, []string{"MINIMAL", "BASIC", "DEFAULT", "STANDARD", "SENSIBLE"}),
bufcheckserverbuild.LintFileLowerSnakeCaseRuleSpecBuilder.Build(true, []string{"DEFAULT", "STANDARD", "STYLE_DEFAULT", "STYLE_STANDARD"}),
bufcheckserverbuild.LintImportNoPublicRuleSpecBuilder.Build(true, []string{"MINIMAL", "BASIC", "DEFAULT", "STANDARD", "SENSIBLE"}),
bufcheckserverbuild.LintImportNoWeakRuleSpecBuilder.Build(true, []string{"MINIMAL", "BASIC", "DEFAULT", "STANDARD", "SENSIBLE"}),
bufcheckserverbuild.LintMessagePascalCaseRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD", "STYLE_BASIC", "STYLE_DEFAULT", "STYLE_STANDARD"}),
bufcheckserverbuild.LintOneofLowerSnakeCaseRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD", "STYLE_BASIC", "STYLE_DEFAULT", "STYLE_STANDARD"}),
bufcheckserverbuild.LintPackageDefinedRuleSpecBuilder.Build(true, []string{"MINIMAL", "BASIC", "DEFAULT", "STANDARD", "SENSIBLE"}),
Expand All @@ -129,6 +128,7 @@ var (
bufcheckserverbuild.LintRPCResponseStandardNameRuleSpecBuilder.Build(true, []string{"DEFAULT", "STANDARD", "STYLE_DEFAULT", "STYLE_STANDARD"}),
bufcheckserverbuild.LintServicePascalCaseRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD", "STYLE_BASIC", "STYLE_DEFAULT", "STYLE_STANDARD"}),
bufcheckserverbuild.LintServiceSuffixRuleSpecBuilder.Build(true, []string{"DEFAULT", "STANDARD", "STYLE_DEFAULT", "STYLE_STANDARD"}),
bufcheckserverbuild.LintImportNoWeakRuleSpecBuilder.Build(false, []string{}),
},
Categories: []*check.CategorySpec{
bufcheckserverbuild.FileCategorySpec,
Expand Down Expand Up @@ -238,7 +238,6 @@ var (
bufcheckserverbuild.LintFieldLowerSnakeCaseRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintFileLowerSnakeCaseRuleSpecBuilder.Build(true, []string{"DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintImportNoPublicRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintImportNoWeakRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintImportUsedRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintMessagePascalCaseRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintOneofLowerSnakeCaseRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
Expand All @@ -265,6 +264,7 @@ var (
bufcheckserverbuild.LintServicePascalCaseRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintServiceSuffixRuleSpecBuilder.Build(true, []string{"DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintSyntaxSpecifiedRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintImportNoWeakRuleSpecBuilder.Build(false, []string{}),
},
Categories: []*check.CategorySpec{
bufcheckserverbuild.FileCategorySpec,
Expand Down Expand Up @@ -367,7 +367,6 @@ var (
bufcheckserverbuild.LintFieldNotRequiredRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintFileLowerSnakeCaseRuleSpecBuilder.Build(true, []string{"DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintImportNoPublicRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintImportNoWeakRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintImportUsedRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintMessagePascalCaseRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintOneofLowerSnakeCaseRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
Expand Down Expand Up @@ -395,6 +394,7 @@ var (
bufcheckserverbuild.LintServiceSuffixRuleSpecBuilder.Build(true, []string{"DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintStablePackageNoImportUnstableRuleSpecBuilder.Build(false, []string{}),
bufcheckserverbuild.LintSyntaxSpecifiedRuleSpecBuilder.Build(true, []string{"BASIC", "DEFAULT", "STANDARD"}),
bufcheckserverbuild.LintImportNoWeakRuleSpecBuilder.Build(false, []string{}),
},
Categories: []*check.CategorySpec{
bufcheckserverbuild.FileCategorySpec,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -689,10 +689,15 @@ var (
}
// LintImportNoWeakRuleSpecBuilder is a rule spec builder.
LintImportNoWeakRuleSpecBuilder = &bufcheckserverutil.RuleSpecBuilder{
ID: "IMPORT_NO_WEAK",
Purpose: "Checks that imports are not weak.",
Type: check.RuleTypeLint,
Handler: bufcheckserverhandle.HandleLintImportNoWeak,
ID: "IMPORT_NO_WEAK",
Purpose: "Checks that imports are not weak.",
Deprecated: true,
Type: check.RuleTypeLint,
Handler: check.RuleHandlerFunc(
func(context.Context, check.ResponseWriter, check.Request) error {
return nil
},
),
}
// LintImportUsedRuleSpecBuilder is a rule spec builder.
LintImportUsedRuleSpecBuilder = &bufcheckserverutil.RuleSpecBuilder{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -460,25 +460,6 @@ func handleLintImportNoPublic(
return nil
}

// HandleLintImportNoWeak is a handle function.
var HandleLintImportNoWeak = bufcheckserverutil.NewLintFileImportRuleHandler(handleLintImportNoWeak)

func handleLintImportNoWeak(
responseWriter bufcheckserverutil.ResponseWriter,
_ bufcheckserverutil.Request,
fileImport bufprotosource.FileImport,
) error {
if fileImport.IsWeak() {
responseWriter.AddProtosourceAnnotation(
fileImport.Location(),
nil,
`Import %q must not be weak.`,
fileImport.Import(),
)
}
return nil
}

// HandleLintImportUsed is a handle function.
var HandleLintImportUsed = bufcheckserverutil.NewLintFileImportRuleHandler(handleLintImportUsed)

Expand Down
11 changes: 0 additions & 11 deletions private/bufpkg/bufcheck/lint_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,17 +172,6 @@ func TestRunImportNoPublic(t *testing.T) {
)
}

func TestRunImportNoWeak(t *testing.T) {
t.Parallel()
testLint(
t,
"import_no_weak",
bufanalysistesting.NewFileAnnotation(t, "a.proto", 6, 1, 6, 30, "IMPORT_NO_WEAK"),
bufanalysistesting.NewFileAnnotation(t, "a.proto", 7, 1, 7, 29, "IMPORT_NO_WEAK"),
bufanalysistesting.NewFileAnnotation(t, "one/one.proto", 6, 1, 6, 30, "IMPORT_NO_WEAK"),
)
}

func TestRunImportUsed(t *testing.T) {
t.Parallel()
testLint(
Expand Down
7 changes: 0 additions & 7 deletions private/bufpkg/bufcheck/testdata/lint/import_no_weak/a.proto

This file was deleted.

4 changes: 0 additions & 4 deletions private/bufpkg/bufcheck/testdata/lint/import_no_weak/buf.yaml

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
-- a.proto --
syntax = "proto3";
import "regular.proto";
import weak "weak.proto";
import "weak.proto";
message ImportRegular {
Regular x = 1;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
-- a.proto --
syntax = "proto3";
import "public.proto";
import weak "weak.proto";
import "weak.proto";
message ImportPublic {
Public x = 1;
}
Expand Down
2 changes: 1 addition & 1 deletion private/gen/proto/go/buf/alpha/audit/v1alpha1/event.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion private/gen/proto/go/buf/alpha/breaking/v1/config.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion private/gen/proto/go/buf/alpha/image/v1/image.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion private/gen/proto/go/buf/alpha/lint/v1/config.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion private/gen/proto/go/buf/alpha/registry/v1alpha1/doc.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading