grpc-tools 1.62.0 → 1.64.0.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a7cc9b3df4344bb57262d9cd05ed5add7d9b2385b6f7be12da02928454c407f9
4
- data.tar.gz: d614f3f840ebf1cb1baa27db05e64b8bd6fb8ef27929739f810ce767be863126
3
+ metadata.gz: 3d3bf38ca998cb0a743b8470d9e86d97c99642116386229e6c17ef0eef407e45
4
+ data.tar.gz: 69f1cbecf4b557eb260cc8902376b3470239d22f0d3389a14cc8dde758786d45
5
5
  SHA512:
6
- metadata.gz: 6fce4ca1aed8ce0ec825eefb1ee6b01f5528dcbea8684a20a6d84bbaed5978d5c02b4d612eaf1ea483dc0b5e0fc01273286b368bc22c10c74db4f88adcefd7f5
7
- data.tar.gz: 990c34030f35ef593ed2266fa7073d86dfdb8384f6dcc9a151975fac443ae7ed215cfb98362d29fcc46cafdc36c8cb0b078b22c0f041f81f41cb61d993f7d500
6
+ metadata.gz: 8719753c53c553ecb6c9c2e05840811b9f96d0f494ad69ab17e201c872476043ec247bf913f1ebd06d3988a054aec9107347405dd050c4d55561758d30e5ad5e
7
+ data.tar.gz: d1e948192beb6ded0894012f6ee3222ab1bd37fe8bdd5486c78359b40f8a3152bbae18b5ecfa1d7d518ceab1efebc28c798841674d32d9d440461442208efeb9
@@ -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'
17
+ VERSION = '1.64.0.pre1'
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
4
+ version: 1.64.0.pre1
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-20 00:00:00.000000000 Z
11
+ date: 2024-05-07 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: '0'
113
+ version: 1.3.1
114
114
  requirements: []
115
115
  rubygems_version: 3.0.8
116
116
  signing_key: