Skip to content

Commit 1aff147

Browse files
srikrsna-bufJohn Chadwick
andauthored
Update to protovalidate v0.14.0 (#3924)
Signed-off-by: Sri Krishna <[email protected]> Co-authored-by: John Chadwick <[email protected]>
1 parent dd011bd commit 1aff147

File tree

10 files changed

+14
-85
lines changed

10 files changed

+14
-85
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
- Add `buf export --all` flag to include non-proto source files.
66
- Add s390x binaries for Linux to releases.
77
- Fix ppc64le binaries for Linux released as x86_64 binaries.
8+
- `buf lint` will no longer warn about uses of `(buf.validate.message).disabled`, as it was
9+
removed in protovalidate v0.14.0. Please update to protovalidate v0.14.0 or higher, using the
10+
steps outlined in the
11+
[protovalidate release notes](https://github.com/bufbuild/protovalidate/releases/tag/v0.14.0).
812

913
## [v1.55.1] - 2025-06-17
1014

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ toolchain go1.24.4
66

77
require (
88
buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.6-20250121211742-6d880cc6cc8d.1
9-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.6-20250625184727-c923a0c2a132.1
9+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.6-20250717165733-d22d418d82d8.1
1010
buf.build/gen/go/bufbuild/registry/connectrpc/go v1.18.1-20250616221922-7d6913ad2095.1
1111
buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.36.6-20250616221922-7d6913ad2095.1
1212
buf.build/go/app v0.1.0
1313
buf.build/go/bufplugin v0.9.0
14-
buf.build/go/protovalidate v0.13.1
14+
buf.build/go/protovalidate v0.14.0
1515
buf.build/go/protoyaml v0.6.0
1616
buf.build/go/spdx v0.2.0
1717
buf.build/go/standard v0.1.0

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.6-20250121211742-6d880cc6cc8d.1 h1:f6miF8tK6H+Ktad24WpnNfpHO75GRGk0rhJ1mxPXqgA=
22
buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.6-20250121211742-6d880cc6cc8d.1/go.mod h1:rvbyamNtvJ4o3ExeCmaG5/6iHnu0vy0E+UQ+Ph0om8s=
3-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.6-20250625184727-c923a0c2a132.1 h1:6tCo3lsKNLqUjRPhyc8JuYWYUiQkulufxSDOfG1zgWQ=
4-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.6-20250625184727-c923a0c2a132.1/go.mod h1:avRlCjnFzl98VPaeCtJ24RrV/wwHFzB8sWXhj26+n/U=
3+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.6-20250717165733-d22d418d82d8.1 h1:VahIvw/JagkamVOb0q87Az0zu2tmrzlqvO2IKIGOwnI=
4+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.6-20250717165733-d22d418d82d8.1/go.mod h1:avRlCjnFzl98VPaeCtJ24RrV/wwHFzB8sWXhj26+n/U=
55
buf.build/gen/go/bufbuild/registry/connectrpc/go v1.18.1-20250616221922-7d6913ad2095.1 h1:YNqHDUUykdS+vw3oHKiNj8tc+63zzZEEiOdleUuD3M4=
66
buf.build/gen/go/bufbuild/registry/connectrpc/go v1.18.1-20250616221922-7d6913ad2095.1/go.mod h1:t6+CtfVRycblgZmLx9b4YUu3C4qnt+arMgcUDXBXriI=
77
buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.36.6-20250616221922-7d6913ad2095.1 h1:ZcKucfxX7jiZcQ9Gudh22+hgZoQOLaSyl12SLX/C97c=
@@ -14,8 +14,8 @@ buf.build/go/bufplugin v0.9.0 h1:ktZJNP3If7ldcWVqh46XKeiYJVPxHQxCfjzVQDzZ/lo=
1414
buf.build/go/bufplugin v0.9.0/go.mod h1:Z0CxA3sKQ6EPz/Os4kJJneeRO6CjPeidtP1ABh5jPPY=
1515
buf.build/go/interrupt v1.1.0 h1:olBuhgv9Sav4/9pkSLoxgiOsZDgM5VhRhvRpn3DL0lE=
1616
buf.build/go/interrupt v1.1.0/go.mod h1:ql56nXPG1oHlvZa6efNC7SKAQ/tUjS6z0mhJl0gyeRM=
17-
buf.build/go/protovalidate v0.13.1 h1:6loHDTWdY/1qmqmt1MijBIKeN4T9Eajrqb9isT1W1s8=
18-
buf.build/go/protovalidate v0.13.1/go.mod h1:C/QcOn/CjXRn5udUwYBiLs8y1TGy7RS+GOSKqjS77aU=
17+
buf.build/go/protovalidate v0.14.0 h1:kr/rC/no+DtRyYX+8KXLDxNnI1rINz0imk5K44ZpZ3A=
18+
buf.build/go/protovalidate v0.14.0/go.mod h1:+F/oISho9MO7gJQNYC2VWLzcO1fTPmaTA08SDYJZncA=
1919
buf.build/go/protoyaml v0.6.0 h1:Nzz1lvcXF8YgNZXk+voPPwdU8FjDPTUV4ndNTXN0n2w=
2020
buf.build/go/protoyaml v0.6.0/go.mod h1:RgUOsBu/GYKLDSIRgQXniXbNgFlGEZnQpRAUdLAFV2Q=
2121
buf.build/go/spdx v0.2.0 h1:IItqM0/cMxvFJJumcBuP8NrsIzMs/UYjp/6WSpq8LTw=

private/bufpkg/bufcheck/bufcheckserver/internal/buflintvalidate/buflintvalidate.go

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,11 @@
1515
package buflintvalidate
1616

1717
import (
18-
"buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
1918
"buf.build/go/protovalidate"
2019
"github.com/bufbuild/buf/private/bufpkg/bufprotosource"
2120
"github.com/bufbuild/buf/private/pkg/protoencoding"
2221
)
2322

24-
// https://buf.build/bufbuild/protovalidate/docs/v0.5.1:buf.validate#buf.validate.MessageRules
25-
const disabledFieldNumberInMessageRules = 1
26-
2723
// CheckMessage validates that all rules on the message are valid, and any CEL expressions compile.
2824
// It also checks all predefined rule extensions on the messages.
2925
func CheckMessage(
@@ -39,15 +35,6 @@ func CheckMessage(
3935
if err != nil {
4036
return err
4137
}
42-
if messageRules.GetDisabled() && len(messageRules.GetCel()) > 0 {
43-
addAnnotationFunc(
44-
message,
45-
message.OptionExtensionLocation(validate.E_Message, disabledFieldNumberInMessageRules),
46-
nil,
47-
"Message %q has (buf.validate.message).disabled, therefore other rules in (buf.validate.message) are not applied and should be removed.",
48-
message.Name(),
49-
)
50-
}
5138
return checkCELForMessage(
5239
addAnnotationFunc,
5340
messageRules,

private/bufpkg/bufcheck/bufcheckserver/internal/buflintvalidate/field.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ func checkFieldFlags(
313313
adder.getFieldRuleName(),
314314
)
315315
}
316-
if fieldRules.GetRequired() && fieldRules.GetIgnore() == validate.Ignore_IGNORE_IF_UNPOPULATED {
316+
if fieldRules.GetRequired() && fieldRules.GetIgnore() == validate.Ignore_IGNORE_IF_ZERO_VALUE {
317317
adder.addForPathsf(
318318
[][]int32{
319319
{requiredFieldNumber},
@@ -323,7 +323,7 @@ func checkFieldFlags(
323323
adder.fieldName(),
324324
adder.getFieldRuleName(requiredFieldNumber),
325325
adder.getFieldRuleName(ignoreFieldNumber),
326-
validate.Ignore_IGNORE_IF_UNPOPULATED,
326+
validate.Ignore_IGNORE_IF_ZERO_VALUE,
327327
)
328328
}
329329
}
@@ -376,13 +376,13 @@ func checkRulesForExtension(
376376
adder.getFieldRuleName(requiredFieldNumber),
377377
)
378378
}
379-
if fieldRules.GetIgnore() == validate.Ignore_IGNORE_IF_UNPOPULATED {
379+
if fieldRules.GetIgnore() == validate.Ignore_IGNORE_IF_ZERO_VALUE {
380380
adder.addForPathf(
381381
[]int32{ignoreFieldNumber},
382382
"Field %q is an extension field and cannot have %s=%v.",
383383
adder.fieldName(),
384384
adder.getFieldRuleName(ignoreFieldNumber),
385-
validate.Ignore_IGNORE_IF_UNPOPULATED,
385+
validate.Ignore_IGNORE_IF_ZERO_VALUE,
386386
)
387387
}
388388
}

private/bufpkg/bufcheck/internal/cmd/buf-plugin-protovalidate-ext/handlers.go

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -156,22 +156,3 @@ func checkValidateIDDashless(
156156
}
157157
return nil
158158
}
159-
160-
func checkMessageNotDisabled(
161-
_ context.Context,
162-
responseWriter check.ResponseWriter,
163-
request check.Request,
164-
messageDescriptor protoreflect.MessageDescriptor,
165-
) error {
166-
constraints, err := protovalidate.ResolveMessageRules(messageDescriptor)
167-
if err != nil {
168-
return err
169-
}
170-
if constraints.GetDisabled() {
171-
responseWriter.AddAnnotation(
172-
check.WithMessagef("%s has (buf.validate.message).disabled set to true", string(messageDescriptor.Name())),
173-
check.WithDescriptor(messageDescriptor),
174-
)
175-
}
176-
return nil
177-
}

private/bufpkg/bufcheck/internal/cmd/buf-plugin-protovalidate-ext/main.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
)
2121

2222
const (
23-
messageNotDisabledRuleID = "MESSAGE_NOT_DISABLED"
2423
validateIDDashlessRuleID = "VALIDATE_ID_DASHLESS"
2524
fieldValidationNotSkippedNoImportRuleID = "FIELD_VALIDATION_NOT_SKIPPED_NO_IMPORT"
2625
fieldValidationNotSkippedRuleID = "FIELD_VALIDATION_NOT_SKIPPED"
@@ -30,16 +29,6 @@ const (
3029
func main() {
3130
check.Main(&check.Spec{
3231
Rules: []*check.RuleSpec{
33-
{
34-
ID: messageNotDisabledRuleID,
35-
CategoryIDs: nil,
36-
Default: true,
37-
Deprecated: false,
38-
Purpose: `Checks that no message has (buf.validate.message).disabled set.`,
39-
Type: check.RuleTypeLint,
40-
ReplacementIDs: nil,
41-
Handler: checkutil.NewMessageRuleHandler(checkMessageNotDisabled),
42-
},
4332
{
4433
ID: validateIDDashlessRuleID,
4534
CategoryIDs: nil,

private/bufpkg/bufcheck/lint_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -653,8 +653,6 @@ func TestRunProtovalidate(t *testing.T) {
653653
bufanalysistesting.NewFileAnnotation(t, "map.proto", 83, 5, 83, 55, "PROTOVALIDATE"),
654654
bufanalysistesting.NewFileAnnotation(t, "map.proto", 86, 5, 86, 57, "PROTOVALIDATE"),
655655
bufanalysistesting.NewFileAnnotation(t, "map.proto", 87, 5, 87, 55, "PROTOVALIDATE"),
656-
bufanalysistesting.NewFileAnnotation(t, "message.proto", 20, 3, 20, 49, "PROTOVALIDATE"),
657-
bufanalysistesting.NewFileAnnotation(t, "message.proto", 27, 5, 27, 51, "PROTOVALIDATE"),
658656
bufanalysistesting.NewFileAnnotation(t, "number.proto", 20, 5, 20, 42, "PROTOVALIDATE"),
659657
bufanalysistesting.NewFileAnnotation(t, "number.proto", 25, 5, 25, 43, "PROTOVALIDATE"),
660658
bufanalysistesting.NewFileAnnotation(t, "number.proto", 28, 5, 28, 43, "PROTOVALIDATE"),

private/bufpkg/bufcheck/testdata/lint/custom_plugins/buf.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ lint:
77
- FIELD_BANNED_SUFFIXES
88
- ENUM_VALUE_BANNED_SUFFIXES
99
- VALIDATE_ID_DASHLESS
10-
- MESSAGE_NOT_DISABLED
1110
- PAGE_REQUEST_HAS_TOKEN
1211
- PAGE_RESPONSE_HAS_TOKEN
1312
plugins:

private/bufpkg/bufcheck/testdata/lint/protovalidate/proto/message.proto

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)