grpc-tools 1.62.0.pre1 → 1.63.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 30f216c0ea756b406e36a70a99bb122491e7304d125d93e273eb94eb909eec9f
4
- data.tar.gz: c306b61e0825b9231c8ab683a3ac7d2d7e028445699145c96a070367b32aa20d
3
+ metadata.gz: a1c5347d46554ea5723a8d6c0cfc5d2e296d28ed371dea2e5c08adde2c2abfff
4
+ data.tar.gz: 97dd4296d62cb61333a959bca45c2bfe27e53e87499390ed79887dd22f49875a
5
5
  SHA512:
6
- metadata.gz: 92b3a24a249b395d71e465064438f4b5956271966f9e95eb242daaa5facca23779d4fbcb9c84c1b71ce4ce36c36221c0bd0a1a2b445c76b51b544ab8c3b4a64e
7
- data.tar.gz: aafdd023cd8f57097d5d9f12b9421a2d56ea66ae28d9c3a6b6393126f9e7631b9cd3d530655a9751ecc03c028828af8eb59f0db3ef4e76bb4a18c6a3dff6a9e9
6
+ metadata.gz: 55386f084f4c1e5d148c3713a6a5df437f2ba8542ea42bb4e3b65915f38c51beae7cf3c8da66a986644acff2d8a82e456b8f9690ab8cabca1f9ec587428f0298
7
+ data.tar.gz: dd7039281dabaa4be2546965dbb4ba02de7b920656e6ba8047b8fe3f44086bdefd28cccde8de1aaadd13746f99f03c8517557063a327ea85fe163d50089a22b0
@@ -102,6 +102,18 @@ message CodeGeneratorResponse {
102
102
  FEATURE_SUPPORTS_EDITIONS = 2;
103
103
  }
104
104
 
105
+ // The minimum edition this plugin supports. This will be treated as an
106
+ // Edition enum, but we want to allow unknown values. It should be specified
107
+ // according the edition enum value, *not* the edition number. Only takes
108
+ // effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
109
+ optional int32 minimum_edition = 3;
110
+
111
+ // The maximum edition this plugin supports. This will be treated as an
112
+ // Edition enum, but we want to allow unknown values. It should be specified
113
+ // according the edition enum value, *not* the edition number. Only takes
114
+ // effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
115
+ optional int32 maximum_edition = 4;
116
+
105
117
  // Represents a single generated file.
106
118
  message File {
107
119
  // The file name, relative to the output directory. The name must not
@@ -73,6 +73,7 @@ enum Edition {
73
73
  // should not be depended on, but they will always be time-ordered for easy
74
74
  // comparison.
75
75
  EDITION_2023 = 1000;
76
+ EDITION_2024 = 1001;
76
77
 
77
78
  // Placeholder editions for testing feature resolution. These should not be
78
79
  // used or relyed on outside of tests.
@@ -81,6 +82,11 @@ enum Edition {
81
82
  EDITION_99997_TEST_ONLY = 99997;
82
83
  EDITION_99998_TEST_ONLY = 99998;
83
84
  EDITION_99999_TEST_ONLY = 99999;
85
+
86
+ // Placeholder for specifying unbounded edition support. This should only
87
+ // ever be used by plugins that can expect to never require any changes to
88
+ // support a new edition.
89
+ EDITION_MAX = 0x7FFFFFFF;
84
90
  }
85
91
 
86
92
  // Describes a complete .proto file.
@@ -202,7 +208,8 @@ message ExtensionRangeOptions {
202
208
  // The verification state of the range.
203
209
  // TODO: flip the default to DECLARATION once all empty ranges
204
210
  // are marked as UNVERIFIED.
205
- optional VerificationState verification = 3 [default = UNVERIFIED];
211
+ optional VerificationState verification = 3
212
+ [default = UNVERIFIED, retention = RETENTION_SOURCE];
206
213
 
207
214
  // Clients can define custom options in extensions of this message. See above.
208
215
  extensions 1000 to max;
@@ -294,12 +301,12 @@ message FieldDescriptorProto {
294
301
  // If true, this is a proto3 "optional". When a proto3 field is optional, it
295
302
  // tracks presence regardless of field type.
296
303
  //
297
- // When proto3_optional is true, this field must be belong to a oneof to
298
- // signal to old proto3 clients that presence is tracked for this field. This
299
- // oneof is known as a "synthetic" oneof, and this field must be its sole
300
- // member (each proto3 optional field gets its own synthetic oneof). Synthetic
301
- // oneofs exist in the descriptor only, and do not generate any API. Synthetic
302
- // oneofs must be ordered after all "real" oneofs.
304
+ // When proto3_optional is true, this field must belong to a oneof to signal
305
+ // to old proto3 clients that presence is tracked for this field. This oneof
306
+ // is known as a "synthetic" oneof, and this field must be its sole member
307
+ // (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs
308
+ // exist in the descriptor only, and do not generate any API. Synthetic oneofs
309
+ // must be ordered after all "real" oneofs.
303
310
  //
304
311
  // For message fields, proto3_optional doesn't create any semantic change,
305
312
  // since non-repeated message fields always track presence. However it still
@@ -478,7 +485,7 @@ message FileOptions {
478
485
  optional bool cc_generic_services = 16 [default = false];
479
486
  optional bool java_generic_services = 17 [default = false];
480
487
  optional bool py_generic_services = 18 [default = false];
481
- optional bool php_generic_services = 42 [default = false];
488
+ reserved 42; // removed php_generic_services
482
489
 
483
490
  // Is this file deprecated?
484
491
  // Depending on the target platform, this can emit Deprecated annotations
@@ -570,10 +577,6 @@ message MessageOptions {
570
577
 
571
578
  reserved 4, 5, 6;
572
579
 
573
- // NOTE: Do not set the option in .proto files. Always use the maps syntax
574
- // instead. The option should only be implicitly set by the proto compiler
575
- // parser.
576
- //
577
580
  // Whether the message is an automatically generated map entry type for the
578
581
  // maps field.
579
582
  //
@@ -591,6 +594,10 @@ message MessageOptions {
591
594
  // use a native map in the target language to hold the keys and values.
592
595
  // The reflection APIs in such implementations still need to work as
593
596
  // if the field is a repeated message field.
597
+ //
598
+ // NOTE: Do not set the option in .proto files. Always use the maps syntax
599
+ // instead. The option should only be implicitly set by the proto compiler
600
+ // parser.
594
601
  optional bool map_entry = 7;
595
602
 
596
603
  reserved 8; // javalite_serializable
@@ -689,19 +696,11 @@ message FieldOptions {
689
696
  // call from multiple threads concurrently, while non-const methods continue
690
697
  // to require exclusive access.
691
698
  //
692
- // Note that implementations may choose not to check required fields within
693
- // a lazy sub-message. That is, calling IsInitialized() on the outer message
694
- // may return true even if the inner message has missing required fields.
695
- // This is necessary because otherwise the inner message would have to be
696
- // parsed in order to perform the check, defeating the purpose of lazy
697
- // parsing. An implementation which chooses not to check required fields
698
- // must be consistent about it. That is, for any particular sub-message, the
699
- // implementation must either *always* check its required fields, or *never*
700
- // check its required fields, regardless of whether or not the message has
701
- // been parsed.
702
- //
703
- // As of May 2022, lazy verifies the contents of the byte stream during
704
- // parsing. An invalid byte stream will cause the overall parsing to fail.
699
+ // Note that lazy message fields are still eagerly verified to check
700
+ // ill-formed wireformat or missing required fields. Calling IsInitialized()
701
+ // on the outer message would fail if the inner message has missing required
702
+ // fields. Failed verification would result in parsing failure (except when
703
+ // uninitialized messages are acceptable).
705
704
  optional bool lazy = 5 [default = false];
706
705
 
707
706
  // unverified_lazy does no correctness checks on the byte stream. This should
@@ -974,8 +973,8 @@ message FeatureSet {
974
973
 
975
974
  enum Utf8Validation {
976
975
  UTF8_VALIDATION_UNKNOWN = 0;
977
- NONE = 1;
978
976
  VERIFY = 2;
977
+ NONE = 3;
979
978
  }
980
979
  optional Utf8Validation utf8_validation = 4 [
981
980
  retention = RETENTION_RUNTIME,
@@ -1015,8 +1014,10 @@ message FeatureSet {
1015
1014
 
1016
1015
  extensions 1000; // for Protobuf C++
1017
1016
  extensions 1001; // for Protobuf Java
1017
+ extensions 1002; // for Protobuf Go
1018
1018
 
1019
1019
  extensions 9995 to 9999; // For internal testing
1020
+ extensions 10000; // for https://github.com/bufbuild/protobuf-es
1020
1021
  }
1021
1022
 
1022
1023
  // A compiled specification for the defaults of a set of features. These
@@ -1098,7 +1099,7 @@ message SourceCodeInfo {
1098
1099
  // location.
1099
1100
  //
1100
1101
  // Each element is a field number or an index. They form a path from
1101
- // the root FileDescriptorProto to the place where the definition occurs.
1102
+ // the root FileDescriptorProto to the place where the definition appears.
1102
1103
  // For example, this path:
1103
1104
  // [ 4, 3, 2, 7, 1 ]
1104
1105
  // refers to:
Binary file
data/bin/x86-linux/protoc CHANGED
Binary file
@@ -102,6 +102,18 @@ message CodeGeneratorResponse {
102
102
  FEATURE_SUPPORTS_EDITIONS = 2;
103
103
  }
104
104
 
105
+ // The minimum edition this plugin supports. This will be treated as an
106
+ // Edition enum, but we want to allow unknown values. It should be specified
107
+ // according the edition enum value, *not* the edition number. Only takes
108
+ // effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
109
+ optional int32 minimum_edition = 3;
110
+
111
+ // The maximum edition this plugin supports. This will be treated as an
112
+ // Edition enum, but we want to allow unknown values. It should be specified
113
+ // according the edition enum value, *not* the edition number. Only takes
114
+ // effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
115
+ optional int32 maximum_edition = 4;
116
+
105
117
  // Represents a single generated file.
106
118
  message File {
107
119
  // The file name, relative to the output directory. The name must not
@@ -73,6 +73,7 @@ enum Edition {
73
73
  // should not be depended on, but they will always be time-ordered for easy
74
74
  // comparison.
75
75
  EDITION_2023 = 1000;
76
+ EDITION_2024 = 1001;
76
77
 
77
78
  // Placeholder editions for testing feature resolution. These should not be
78
79
  // used or relyed on outside of tests.
@@ -81,6 +82,11 @@ enum Edition {
81
82
  EDITION_99997_TEST_ONLY = 99997;
82
83
  EDITION_99998_TEST_ONLY = 99998;
83
84
  EDITION_99999_TEST_ONLY = 99999;
85
+
86
+ // Placeholder for specifying unbounded edition support. This should only
87
+ // ever be used by plugins that can expect to never require any changes to
88
+ // support a new edition.
89
+ EDITION_MAX = 0x7FFFFFFF;
84
90
  }
85
91
 
86
92
  // Describes a complete .proto file.
@@ -202,7 +208,8 @@ message ExtensionRangeOptions {
202
208
  // The verification state of the range.
203
209
  // TODO: flip the default to DECLARATION once all empty ranges
204
210
  // are marked as UNVERIFIED.
205
- optional VerificationState verification = 3 [default = UNVERIFIED];
211
+ optional VerificationState verification = 3
212
+ [default = UNVERIFIED, retention = RETENTION_SOURCE];
206
213
 
207
214
  // Clients can define custom options in extensions of this message. See above.
208
215
  extensions 1000 to max;
@@ -294,12 +301,12 @@ message FieldDescriptorProto {
294
301
  // If true, this is a proto3 "optional". When a proto3 field is optional, it
295
302
  // tracks presence regardless of field type.
296
303
  //
297
- // When proto3_optional is true, this field must be belong to a oneof to
298
- // signal to old proto3 clients that presence is tracked for this field. This
299
- // oneof is known as a "synthetic" oneof, and this field must be its sole
300
- // member (each proto3 optional field gets its own synthetic oneof). Synthetic
301
- // oneofs exist in the descriptor only, and do not generate any API. Synthetic
302
- // oneofs must be ordered after all "real" oneofs.
304
+ // When proto3_optional is true, this field must belong to a oneof to signal
305
+ // to old proto3 clients that presence is tracked for this field. This oneof
306
+ // is known as a "synthetic" oneof, and this field must be its sole member
307
+ // (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs
308
+ // exist in the descriptor only, and do not generate any API. Synthetic oneofs
309
+ // must be ordered after all "real" oneofs.
303
310
  //
304
311
  // For message fields, proto3_optional doesn't create any semantic change,
305
312
  // since non-repeated message fields always track presence. However it still
@@ -478,7 +485,7 @@ message FileOptions {
478
485
  optional bool cc_generic_services = 16 [default = false];
479
486
  optional bool java_generic_services = 17 [default = false];
480
487
  optional bool py_generic_services = 18 [default = false];
481
- optional bool php_generic_services = 42 [default = false];
488
+ reserved 42; // removed php_generic_services
482
489
 
483
490
  // Is this file deprecated?
484
491
  // Depending on the target platform, this can emit Deprecated annotations
@@ -570,10 +577,6 @@ message MessageOptions {
570
577
 
571
578
  reserved 4, 5, 6;
572
579
 
573
- // NOTE: Do not set the option in .proto files. Always use the maps syntax
574
- // instead. The option should only be implicitly set by the proto compiler
575
- // parser.
576
- //
577
580
  // Whether the message is an automatically generated map entry type for the
578
581
  // maps field.
579
582
  //
@@ -591,6 +594,10 @@ message MessageOptions {
591
594
  // use a native map in the target language to hold the keys and values.
592
595
  // The reflection APIs in such implementations still need to work as
593
596
  // if the field is a repeated message field.
597
+ //
598
+ // NOTE: Do not set the option in .proto files. Always use the maps syntax
599
+ // instead. The option should only be implicitly set by the proto compiler
600
+ // parser.
594
601
  optional bool map_entry = 7;
595
602
 
596
603
  reserved 8; // javalite_serializable
@@ -689,19 +696,11 @@ message FieldOptions {
689
696
  // call from multiple threads concurrently, while non-const methods continue
690
697
  // to require exclusive access.
691
698
  //
692
- // Note that implementations may choose not to check required fields within
693
- // a lazy sub-message. That is, calling IsInitialized() on the outer message
694
- // may return true even if the inner message has missing required fields.
695
- // This is necessary because otherwise the inner message would have to be
696
- // parsed in order to perform the check, defeating the purpose of lazy
697
- // parsing. An implementation which chooses not to check required fields
698
- // must be consistent about it. That is, for any particular sub-message, the
699
- // implementation must either *always* check its required fields, or *never*
700
- // check its required fields, regardless of whether or not the message has
701
- // been parsed.
702
- //
703
- // As of May 2022, lazy verifies the contents of the byte stream during
704
- // parsing. An invalid byte stream will cause the overall parsing to fail.
699
+ // Note that lazy message fields are still eagerly verified to check
700
+ // ill-formed wireformat or missing required fields. Calling IsInitialized()
701
+ // on the outer message would fail if the inner message has missing required
702
+ // fields. Failed verification would result in parsing failure (except when
703
+ // uninitialized messages are acceptable).
705
704
  optional bool lazy = 5 [default = false];
706
705
 
707
706
  // unverified_lazy does no correctness checks on the byte stream. This should
@@ -974,8 +973,8 @@ message FeatureSet {
974
973
 
975
974
  enum Utf8Validation {
976
975
  UTF8_VALIDATION_UNKNOWN = 0;
977
- NONE = 1;
978
976
  VERIFY = 2;
977
+ NONE = 3;
979
978
  }
980
979
  optional Utf8Validation utf8_validation = 4 [
981
980
  retention = RETENTION_RUNTIME,
@@ -1015,8 +1014,10 @@ message FeatureSet {
1015
1014
 
1016
1015
  extensions 1000; // for Protobuf C++
1017
1016
  extensions 1001; // for Protobuf Java
1017
+ extensions 1002; // for Protobuf Go
1018
1018
 
1019
1019
  extensions 9995 to 9999; // For internal testing
1020
+ extensions 10000; // for https://github.com/bufbuild/protobuf-es
1020
1021
  }
1021
1022
 
1022
1023
  // A compiled specification for the defaults of a set of features. These
@@ -1098,7 +1099,7 @@ message SourceCodeInfo {
1098
1099
  // location.
1099
1100
  //
1100
1101
  // Each element is a field number or an index. They form a path from
1101
- // the root FileDescriptorProto to the place where the definition occurs.
1102
+ // the root FileDescriptorProto to the place where the definition appears.
1102
1103
  // For example, this path:
1103
1104
  // [ 4, 3, 2, 7, 1 ]
1104
1105
  // refers to:
Binary file
Binary file
@@ -102,6 +102,18 @@ message CodeGeneratorResponse {
102
102
  FEATURE_SUPPORTS_EDITIONS = 2;
103
103
  }
104
104
 
105
+ // The minimum edition this plugin supports. This will be treated as an
106
+ // Edition enum, but we want to allow unknown values. It should be specified
107
+ // according the edition enum value, *not* the edition number. Only takes
108
+ // effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
109
+ optional int32 minimum_edition = 3;
110
+
111
+ // The maximum edition this plugin supports. This will be treated as an
112
+ // Edition enum, but we want to allow unknown values. It should be specified
113
+ // according the edition enum value, *not* the edition number. Only takes
114
+ // effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
115
+ optional int32 maximum_edition = 4;
116
+
105
117
  // Represents a single generated file.
106
118
  message File {
107
119
  // The file name, relative to the output directory. The name must not
@@ -73,6 +73,7 @@ enum Edition {
73
73
  // should not be depended on, but they will always be time-ordered for easy
74
74
  // comparison.
75
75
  EDITION_2023 = 1000;
76
+ EDITION_2024 = 1001;
76
77
 
77
78
  // Placeholder editions for testing feature resolution. These should not be
78
79
  // used or relyed on outside of tests.
@@ -81,6 +82,11 @@ enum Edition {
81
82
  EDITION_99997_TEST_ONLY = 99997;
82
83
  EDITION_99998_TEST_ONLY = 99998;
83
84
  EDITION_99999_TEST_ONLY = 99999;
85
+
86
+ // Placeholder for specifying unbounded edition support. This should only
87
+ // ever be used by plugins that can expect to never require any changes to
88
+ // support a new edition.
89
+ EDITION_MAX = 0x7FFFFFFF;
84
90
  }
85
91
 
86
92
  // Describes a complete .proto file.
@@ -202,7 +208,8 @@ message ExtensionRangeOptions {
202
208
  // The verification state of the range.
203
209
  // TODO: flip the default to DECLARATION once all empty ranges
204
210
  // are marked as UNVERIFIED.
205
- optional VerificationState verification = 3 [default = UNVERIFIED];
211
+ optional VerificationState verification = 3
212
+ [default = UNVERIFIED, retention = RETENTION_SOURCE];
206
213
 
207
214
  // Clients can define custom options in extensions of this message. See above.
208
215
  extensions 1000 to max;
@@ -294,12 +301,12 @@ message FieldDescriptorProto {
294
301
  // If true, this is a proto3 "optional". When a proto3 field is optional, it
295
302
  // tracks presence regardless of field type.
296
303
  //
297
- // When proto3_optional is true, this field must be belong to a oneof to
298
- // signal to old proto3 clients that presence is tracked for this field. This
299
- // oneof is known as a "synthetic" oneof, and this field must be its sole
300
- // member (each proto3 optional field gets its own synthetic oneof). Synthetic
301
- // oneofs exist in the descriptor only, and do not generate any API. Synthetic
302
- // oneofs must be ordered after all "real" oneofs.
304
+ // When proto3_optional is true, this field must belong to a oneof to signal
305
+ // to old proto3 clients that presence is tracked for this field. This oneof
306
+ // is known as a "synthetic" oneof, and this field must be its sole member
307
+ // (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs
308
+ // exist in the descriptor only, and do not generate any API. Synthetic oneofs
309
+ // must be ordered after all "real" oneofs.
303
310
  //
304
311
  // For message fields, proto3_optional doesn't create any semantic change,
305
312
  // since non-repeated message fields always track presence. However it still
@@ -478,7 +485,7 @@ message FileOptions {
478
485
  optional bool cc_generic_services = 16 [default = false];
479
486
  optional bool java_generic_services = 17 [default = false];
480
487
  optional bool py_generic_services = 18 [default = false];
481
- optional bool php_generic_services = 42 [default = false];
488
+ reserved 42; // removed php_generic_services
482
489
 
483
490
  // Is this file deprecated?
484
491
  // Depending on the target platform, this can emit Deprecated annotations
@@ -570,10 +577,6 @@ message MessageOptions {
570
577
 
571
578
  reserved 4, 5, 6;
572
579
 
573
- // NOTE: Do not set the option in .proto files. Always use the maps syntax
574
- // instead. The option should only be implicitly set by the proto compiler
575
- // parser.
576
- //
577
580
  // Whether the message is an automatically generated map entry type for the
578
581
  // maps field.
579
582
  //
@@ -591,6 +594,10 @@ message MessageOptions {
591
594
  // use a native map in the target language to hold the keys and values.
592
595
  // The reflection APIs in such implementations still need to work as
593
596
  // if the field is a repeated message field.
597
+ //
598
+ // NOTE: Do not set the option in .proto files. Always use the maps syntax
599
+ // instead. The option should only be implicitly set by the proto compiler
600
+ // parser.
594
601
  optional bool map_entry = 7;
595
602
 
596
603
  reserved 8; // javalite_serializable
@@ -689,19 +696,11 @@ message FieldOptions {
689
696
  // call from multiple threads concurrently, while non-const methods continue
690
697
  // to require exclusive access.
691
698
  //
692
- // Note that implementations may choose not to check required fields within
693
- // a lazy sub-message. That is, calling IsInitialized() on the outer message
694
- // may return true even if the inner message has missing required fields.
695
- // This is necessary because otherwise the inner message would have to be
696
- // parsed in order to perform the check, defeating the purpose of lazy
697
- // parsing. An implementation which chooses not to check required fields
698
- // must be consistent about it. That is, for any particular sub-message, the
699
- // implementation must either *always* check its required fields, or *never*
700
- // check its required fields, regardless of whether or not the message has
701
- // been parsed.
702
- //
703
- // As of May 2022, lazy verifies the contents of the byte stream during
704
- // parsing. An invalid byte stream will cause the overall parsing to fail.
699
+ // Note that lazy message fields are still eagerly verified to check
700
+ // ill-formed wireformat or missing required fields. Calling IsInitialized()
701
+ // on the outer message would fail if the inner message has missing required
702
+ // fields. Failed verification would result in parsing failure (except when
703
+ // uninitialized messages are acceptable).
705
704
  optional bool lazy = 5 [default = false];
706
705
 
707
706
  // unverified_lazy does no correctness checks on the byte stream. This should
@@ -974,8 +973,8 @@ message FeatureSet {
974
973
 
975
974
  enum Utf8Validation {
976
975
  UTF8_VALIDATION_UNKNOWN = 0;
977
- NONE = 1;
978
976
  VERIFY = 2;
977
+ NONE = 3;
979
978
  }
980
979
  optional Utf8Validation utf8_validation = 4 [
981
980
  retention = RETENTION_RUNTIME,
@@ -1015,8 +1014,10 @@ message FeatureSet {
1015
1014
 
1016
1015
  extensions 1000; // for Protobuf C++
1017
1016
  extensions 1001; // for Protobuf Java
1017
+ extensions 1002; // for Protobuf Go
1018
1018
 
1019
1019
  extensions 9995 to 9999; // For internal testing
1020
+ extensions 10000; // for https://github.com/bufbuild/protobuf-es
1020
1021
  }
1021
1022
 
1022
1023
  // A compiled specification for the defaults of a set of features. These
@@ -1098,7 +1099,7 @@ message SourceCodeInfo {
1098
1099
  // location.
1099
1100
  //
1100
1101
  // Each element is a field number or an index. They form a path from
1101
- // the root FileDescriptorProto to the place where the definition occurs.
1102
+ // the root FileDescriptorProto to the place where the definition appears.
1102
1103
  // For example, this path:
1103
1104
  // [ 4, 3, 2, 7, 1 ]
1104
1105
  // refers to:
Binary file
Binary file
@@ -102,6 +102,18 @@ message CodeGeneratorResponse {
102
102
  FEATURE_SUPPORTS_EDITIONS = 2;
103
103
  }
104
104
 
105
+ // The minimum edition this plugin supports. This will be treated as an
106
+ // Edition enum, but we want to allow unknown values. It should be specified
107
+ // according the edition enum value, *not* the edition number. Only takes
108
+ // effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
109
+ optional int32 minimum_edition = 3;
110
+
111
+ // The maximum edition this plugin supports. This will be treated as an
112
+ // Edition enum, but we want to allow unknown values. It should be specified
113
+ // according the edition enum value, *not* the edition number. Only takes
114
+ // effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
115
+ optional int32 maximum_edition = 4;
116
+
105
117
  // Represents a single generated file.
106
118
  message File {
107
119
  // The file name, relative to the output directory. The name must not
@@ -73,6 +73,7 @@ enum Edition {
73
73
  // should not be depended on, but they will always be time-ordered for easy
74
74
  // comparison.
75
75
  EDITION_2023 = 1000;
76
+ EDITION_2024 = 1001;
76
77
 
77
78
  // Placeholder editions for testing feature resolution. These should not be
78
79
  // used or relyed on outside of tests.
@@ -81,6 +82,11 @@ enum Edition {
81
82
  EDITION_99997_TEST_ONLY = 99997;
82
83
  EDITION_99998_TEST_ONLY = 99998;
83
84
  EDITION_99999_TEST_ONLY = 99999;
85
+
86
+ // Placeholder for specifying unbounded edition support. This should only
87
+ // ever be used by plugins that can expect to never require any changes to
88
+ // support a new edition.
89
+ EDITION_MAX = 0x7FFFFFFF;
84
90
  }
85
91
 
86
92
  // Describes a complete .proto file.
@@ -202,7 +208,8 @@ message ExtensionRangeOptions {
202
208
  // The verification state of the range.
203
209
  // TODO: flip the default to DECLARATION once all empty ranges
204
210
  // are marked as UNVERIFIED.
205
- optional VerificationState verification = 3 [default = UNVERIFIED];
211
+ optional VerificationState verification = 3
212
+ [default = UNVERIFIED, retention = RETENTION_SOURCE];
206
213
 
207
214
  // Clients can define custom options in extensions of this message. See above.
208
215
  extensions 1000 to max;
@@ -294,12 +301,12 @@ message FieldDescriptorProto {
294
301
  // If true, this is a proto3 "optional". When a proto3 field is optional, it
295
302
  // tracks presence regardless of field type.
296
303
  //
297
- // When proto3_optional is true, this field must be belong to a oneof to
298
- // signal to old proto3 clients that presence is tracked for this field. This
299
- // oneof is known as a "synthetic" oneof, and this field must be its sole
300
- // member (each proto3 optional field gets its own synthetic oneof). Synthetic
301
- // oneofs exist in the descriptor only, and do not generate any API. Synthetic
302
- // oneofs must be ordered after all "real" oneofs.
304
+ // When proto3_optional is true, this field must belong to a oneof to signal
305
+ // to old proto3 clients that presence is tracked for this field. This oneof
306
+ // is known as a "synthetic" oneof, and this field must be its sole member
307
+ // (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs
308
+ // exist in the descriptor only, and do not generate any API. Synthetic oneofs
309
+ // must be ordered after all "real" oneofs.
303
310
  //
304
311
  // For message fields, proto3_optional doesn't create any semantic change,
305
312
  // since non-repeated message fields always track presence. However it still
@@ -478,7 +485,7 @@ message FileOptions {
478
485
  optional bool cc_generic_services = 16 [default = false];
479
486
  optional bool java_generic_services = 17 [default = false];
480
487
  optional bool py_generic_services = 18 [default = false];
481
- optional bool php_generic_services = 42 [default = false];
488
+ reserved 42; // removed php_generic_services
482
489
 
483
490
  // Is this file deprecated?
484
491
  // Depending on the target platform, this can emit Deprecated annotations
@@ -570,10 +577,6 @@ message MessageOptions {
570
577
 
571
578
  reserved 4, 5, 6;
572
579
 
573
- // NOTE: Do not set the option in .proto files. Always use the maps syntax
574
- // instead. The option should only be implicitly set by the proto compiler
575
- // parser.
576
- //
577
580
  // Whether the message is an automatically generated map entry type for the
578
581
  // maps field.
579
582
  //
@@ -591,6 +594,10 @@ message MessageOptions {
591
594
  // use a native map in the target language to hold the keys and values.
592
595
  // The reflection APIs in such implementations still need to work as
593
596
  // if the field is a repeated message field.
597
+ //
598
+ // NOTE: Do not set the option in .proto files. Always use the maps syntax
599
+ // instead. The option should only be implicitly set by the proto compiler
600
+ // parser.
594
601
  optional bool map_entry = 7;
595
602
 
596
603
  reserved 8; // javalite_serializable
@@ -689,19 +696,11 @@ message FieldOptions {
689
696
  // call from multiple threads concurrently, while non-const methods continue
690
697
  // to require exclusive access.
691
698
  //
692
- // Note that implementations may choose not to check required fields within
693
- // a lazy sub-message. That is, calling IsInitialized() on the outer message
694
- // may return true even if the inner message has missing required fields.
695
- // This is necessary because otherwise the inner message would have to be
696
- // parsed in order to perform the check, defeating the purpose of lazy
697
- // parsing. An implementation which chooses not to check required fields
698
- // must be consistent about it. That is, for any particular sub-message, the
699
- // implementation must either *always* check its required fields, or *never*
700
- // check its required fields, regardless of whether or not the message has
701
- // been parsed.
702
- //
703
- // As of May 2022, lazy verifies the contents of the byte stream during
704
- // parsing. An invalid byte stream will cause the overall parsing to fail.
699
+ // Note that lazy message fields are still eagerly verified to check
700
+ // ill-formed wireformat or missing required fields. Calling IsInitialized()
701
+ // on the outer message would fail if the inner message has missing required
702
+ // fields. Failed verification would result in parsing failure (except when
703
+ // uninitialized messages are acceptable).
705
704
  optional bool lazy = 5 [default = false];
706
705
 
707
706
  // unverified_lazy does no correctness checks on the byte stream. This should
@@ -974,8 +973,8 @@ message FeatureSet {
974
973
 
975
974
  enum Utf8Validation {
976
975
  UTF8_VALIDATION_UNKNOWN = 0;
977
- NONE = 1;
978
976
  VERIFY = 2;
977
+ NONE = 3;
979
978
  }
980
979
  optional Utf8Validation utf8_validation = 4 [
981
980
  retention = RETENTION_RUNTIME,
@@ -1015,8 +1014,10 @@ message FeatureSet {
1015
1014
 
1016
1015
  extensions 1000; // for Protobuf C++
1017
1016
  extensions 1001; // for Protobuf Java
1017
+ extensions 1002; // for Protobuf Go
1018
1018
 
1019
1019
  extensions 9995 to 9999; // For internal testing
1020
+ extensions 10000; // for https://github.com/bufbuild/protobuf-es
1020
1021
  }
1021
1022
 
1022
1023
  // A compiled specification for the defaults of a set of features. These
@@ -1098,7 +1099,7 @@ message SourceCodeInfo {
1098
1099
  // location.
1099
1100
  //
1100
1101
  // Each element is a field number or an index. They form a path from
1101
- // the root FileDescriptorProto to the place where the definition occurs.
1102
+ // the root FileDescriptorProto to the place where the definition appears.
1102
1103
  // For example, this path:
1103
1104
  // [ 4, 3, 2, 7, 1 ]
1104
1105
  // refers to:
Binary file
Binary file
@@ -102,6 +102,18 @@ message CodeGeneratorResponse {
102
102
  FEATURE_SUPPORTS_EDITIONS = 2;
103
103
  }
104
104
 
105
+ // The minimum edition this plugin supports. This will be treated as an
106
+ // Edition enum, but we want to allow unknown values. It should be specified
107
+ // according the edition enum value, *not* the edition number. Only takes
108
+ // effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
109
+ optional int32 minimum_edition = 3;
110
+
111
+ // The maximum edition this plugin supports. This will be treated as an
112
+ // Edition enum, but we want to allow unknown values. It should be specified
113
+ // according the edition enum value, *not* the edition number. Only takes
114
+ // effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
115
+ optional int32 maximum_edition = 4;
116
+
105
117
  // Represents a single generated file.
106
118
  message File {
107
119
  // The file name, relative to the output directory. The name must not
@@ -73,6 +73,7 @@ enum Edition {
73
73
  // should not be depended on, but they will always be time-ordered for easy
74
74
  // comparison.
75
75
  EDITION_2023 = 1000;
76
+ EDITION_2024 = 1001;
76
77
 
77
78
  // Placeholder editions for testing feature resolution. These should not be
78
79
  // used or relyed on outside of tests.
@@ -81,6 +82,11 @@ enum Edition {
81
82
  EDITION_99997_TEST_ONLY = 99997;
82
83
  EDITION_99998_TEST_ONLY = 99998;
83
84
  EDITION_99999_TEST_ONLY = 99999;
85
+
86
+ // Placeholder for specifying unbounded edition support. This should only
87
+ // ever be used by plugins that can expect to never require any changes to
88
+ // support a new edition.
89
+ EDITION_MAX = 0x7FFFFFFF;
84
90
  }
85
91
 
86
92
  // Describes a complete .proto file.
@@ -202,7 +208,8 @@ message ExtensionRangeOptions {
202
208
  // The verification state of the range.
203
209
  // TODO: flip the default to DECLARATION once all empty ranges
204
210
  // are marked as UNVERIFIED.
205
- optional VerificationState verification = 3 [default = UNVERIFIED];
211
+ optional VerificationState verification = 3
212
+ [default = UNVERIFIED, retention = RETENTION_SOURCE];
206
213
 
207
214
  // Clients can define custom options in extensions of this message. See above.
208
215
  extensions 1000 to max;
@@ -294,12 +301,12 @@ message FieldDescriptorProto {
294
301
  // If true, this is a proto3 "optional". When a proto3 field is optional, it
295
302
  // tracks presence regardless of field type.
296
303
  //
297
- // When proto3_optional is true, this field must be belong to a oneof to
298
- // signal to old proto3 clients that presence is tracked for this field. This
299
- // oneof is known as a "synthetic" oneof, and this field must be its sole
300
- // member (each proto3 optional field gets its own synthetic oneof). Synthetic
301
- // oneofs exist in the descriptor only, and do not generate any API. Synthetic
302
- // oneofs must be ordered after all "real" oneofs.
304
+ // When proto3_optional is true, this field must belong to a oneof to signal
305
+ // to old proto3 clients that presence is tracked for this field. This oneof
306
+ // is known as a "synthetic" oneof, and this field must be its sole member
307
+ // (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs
308
+ // exist in the descriptor only, and do not generate any API. Synthetic oneofs
309
+ // must be ordered after all "real" oneofs.
303
310
  //
304
311
  // For message fields, proto3_optional doesn't create any semantic change,
305
312
  // since non-repeated message fields always track presence. However it still
@@ -478,7 +485,7 @@ message FileOptions {
478
485
  optional bool cc_generic_services = 16 [default = false];
479
486
  optional bool java_generic_services = 17 [default = false];
480
487
  optional bool py_generic_services = 18 [default = false];
481
- optional bool php_generic_services = 42 [default = false];
488
+ reserved 42; // removed php_generic_services
482
489
 
483
490
  // Is this file deprecated?
484
491
  // Depending on the target platform, this can emit Deprecated annotations
@@ -570,10 +577,6 @@ message MessageOptions {
570
577
 
571
578
  reserved 4, 5, 6;
572
579
 
573
- // NOTE: Do not set the option in .proto files. Always use the maps syntax
574
- // instead. The option should only be implicitly set by the proto compiler
575
- // parser.
576
- //
577
580
  // Whether the message is an automatically generated map entry type for the
578
581
  // maps field.
579
582
  //
@@ -591,6 +594,10 @@ message MessageOptions {
591
594
  // use a native map in the target language to hold the keys and values.
592
595
  // The reflection APIs in such implementations still need to work as
593
596
  // if the field is a repeated message field.
597
+ //
598
+ // NOTE: Do not set the option in .proto files. Always use the maps syntax
599
+ // instead. The option should only be implicitly set by the proto compiler
600
+ // parser.
594
601
  optional bool map_entry = 7;
595
602
 
596
603
  reserved 8; // javalite_serializable
@@ -689,19 +696,11 @@ message FieldOptions {
689
696
  // call from multiple threads concurrently, while non-const methods continue
690
697
  // to require exclusive access.
691
698
  //
692
- // Note that implementations may choose not to check required fields within
693
- // a lazy sub-message. That is, calling IsInitialized() on the outer message
694
- // may return true even if the inner message has missing required fields.
695
- // This is necessary because otherwise the inner message would have to be
696
- // parsed in order to perform the check, defeating the purpose of lazy
697
- // parsing. An implementation which chooses not to check required fields
698
- // must be consistent about it. That is, for any particular sub-message, the
699
- // implementation must either *always* check its required fields, or *never*
700
- // check its required fields, regardless of whether or not the message has
701
- // been parsed.
702
- //
703
- // As of May 2022, lazy verifies the contents of the byte stream during
704
- // parsing. An invalid byte stream will cause the overall parsing to fail.
699
+ // Note that lazy message fields are still eagerly verified to check
700
+ // ill-formed wireformat or missing required fields. Calling IsInitialized()
701
+ // on the outer message would fail if the inner message has missing required
702
+ // fields. Failed verification would result in parsing failure (except when
703
+ // uninitialized messages are acceptable).
705
704
  optional bool lazy = 5 [default = false];
706
705
 
707
706
  // unverified_lazy does no correctness checks on the byte stream. This should
@@ -974,8 +973,8 @@ message FeatureSet {
974
973
 
975
974
  enum Utf8Validation {
976
975
  UTF8_VALIDATION_UNKNOWN = 0;
977
- NONE = 1;
978
976
  VERIFY = 2;
977
+ NONE = 3;
979
978
  }
980
979
  optional Utf8Validation utf8_validation = 4 [
981
980
  retention = RETENTION_RUNTIME,
@@ -1015,8 +1014,10 @@ message FeatureSet {
1015
1014
 
1016
1015
  extensions 1000; // for Protobuf C++
1017
1016
  extensions 1001; // for Protobuf Java
1017
+ extensions 1002; // for Protobuf Go
1018
1018
 
1019
1019
  extensions 9995 to 9999; // For internal testing
1020
+ extensions 10000; // for https://github.com/bufbuild/protobuf-es
1020
1021
  }
1021
1022
 
1022
1023
  // A compiled specification for the defaults of a set of features. These
@@ -1098,7 +1099,7 @@ message SourceCodeInfo {
1098
1099
  // location.
1099
1100
  //
1100
1101
  // Each element is a field number or an index. They form a path from
1101
- // the root FileDescriptorProto to the place where the definition occurs.
1102
+ // the root FileDescriptorProto to the place where the definition appears.
1102
1103
  // For example, this path:
1103
1104
  // [ 4, 3, 2, 7, 1 ]
1104
1105
  // refers to:
Binary file
data/version.rb CHANGED
@@ -14,6 +14,6 @@
14
14
 
15
15
  module GRPC
16
16
  module Tools
17
- VERSION = '1.62.0.pre1'
17
+ VERSION = '1.63.0'
18
18
  end
19
19
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.62.0.pre1
4
+ version: 1.63.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - grpc Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-14 00:00:00.000000000 Z
11
+ date: 2024-04-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: protoc and the Ruby gRPC protoc plugin
14
14
  email: grpc-io@googlegroups.com
@@ -108,9 +108,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
108
  version: '0'
109
109
  required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  requirements:
111
- - - ">"
111
+ - - ">="
112
112
  - !ruby/object:Gem::Version
113
- version: 1.3.1
113
+ version: '0'
114
114
  requirements: []
115
115
  rubygems_version: 3.0.8
116
116
  signing_key: