protobuf 3.10.3 → 3.10.4

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: b525441c3875b1c480aa66d017320f94e6a1709dc57a01a00046875dc818514b
4
- data.tar.gz: b0120b20ec1992adb4aae4f257bc3f3e019c0cd928b1f11b716ff3443aff22d2
3
+ metadata.gz: a36764aa2113c15a2dbc5e12f1bdfd04a69af8d19dd3e34d761ceaf1f875d81b
4
+ data.tar.gz: 1b790a1156812f2ca1f904ff70344d4bde7f15eea73384cc2b6f23d459ddf7e2
5
5
  SHA512:
6
- metadata.gz: '08c01a3a8158ffec5621d563a298e6cce89044dcac4a1ffbc64f40fd792efc29fe960e76527e2b3fbdbfefa0bb464d51b576c9ec0dcc54aa71d444ef104c7e14'
7
- data.tar.gz: c980ad847a3f546792925141738373ca511ed42ae161e37b4447f7b109e9fea1a6697241951a89faff0e1871bcc6f0b42fb47eac5d36f9af37bc3c0b8f2433d3
6
+ metadata.gz: 989876600d8b6c89657e8224850eb64cfa0f0537c37843716d9df4742fde61feef6e4c278d8665ccf70be0cbe5d5006a61a2a8b36c718331bd25b3446d4125cf
7
+ data.tar.gz: 9975ca67caf38e5a0098d78e28b928353aa2b5d776d431102d7884e2002c8f88a97f2e5d5398b540dcf6205b6a4057be3c8dadfab6dbad73b05ab2368d9a589b
@@ -0,0 +1,48 @@
1
+ version: 2.1
2
+
3
+ jobs:
4
+ # skipping build step because Gemfile.lock is not included in the source
5
+ # this makes the bundler caching step a noop
6
+ test:
7
+ parameters:
8
+ ruby-image:
9
+ type: string
10
+ docker:
11
+ - image: << parameters.ruby-image >>
12
+ steps:
13
+ - run:
14
+ name: Install protobuf compiler
15
+ command: |
16
+ archive=protoc-3.16.0-linux-x86_64
17
+ curl -O -L https://github.com/protocolbuffers/protobuf/releases/download/v3.16.0/$archive.zip
18
+ sudo unzip -d '/usr/local' $archive.zip 'bin/*' 'include/*'
19
+ sudo chown -R $(whoami) /usr/local/bin/protoc /usr/local/include/google
20
+ rm -rf $archive.zip
21
+ - run:
22
+ command: protoc --version
23
+ - run:
24
+ command: sudo apt-get update
25
+ - run:
26
+ message: Install ZeroMQ
27
+ command: sudo apt-get -y install libzmq3-dev
28
+ - checkout
29
+ - run:
30
+ command: gem install bundler
31
+ - run:
32
+ command: bundle install
33
+ - run:
34
+ command: bundle exec rake
35
+
36
+ workflows:
37
+ build_and_test:
38
+ jobs:
39
+ - test:
40
+ matrix:
41
+ parameters:
42
+ ruby-image:
43
+ - circleci/jruby:9.2.6.0-jdk
44
+ - circleci/jruby:9.1.17.0-jdk
45
+ - circleci/jruby:9.2-jdk8
46
+ - circleci/ruby:2.4
47
+ - circleci/ruby:2.5
48
+ - circleci/ruby:2.7
data/CHANGES.md CHANGED
@@ -4,6 +4,7 @@
4
4
  3.10.0
5
5
  ------
6
6
  - Add headers to request proto
7
+ - Add support for compiling v3 protos with optional fields as v2 optional fields
7
8
 
8
9
  3.9.0
9
10
  -----
data/Rakefile CHANGED
@@ -22,10 +22,12 @@ namespace :compile do
22
22
  task :spec do
23
23
  proto_path = ::File.expand_path('../spec/support/', __FILE__)
24
24
  proto_files = Dir[File.join(proto_path, '**', '*.proto')]
25
- cmd = %(protoc --plugin=./bin/protoc-gen-ruby --ruby_out=#{proto_path} -I #{proto_path} #{proto_files.join(' ')})
26
25
 
27
- puts cmd
28
- system(cmd)
26
+ proto_files.each do |proto_file|
27
+ cmd = %(protoc --plugin=protoc-gen-ruby-protobuf=./bin/protoc-gen-ruby --ruby-protobuf_out=#{proto_path} -I #{proto_path} #{proto_file})
28
+ puts cmd
29
+ system(cmd) || fail("Failed to compile spec proto: #{proto_file}")
30
+ end
29
31
  end
30
32
 
31
33
  desc 'Compile rpc protos in protos/ directory'
@@ -35,10 +37,10 @@ namespace :compile do
35
37
  output_dir = ::File.expand_path('../tmp/rpc', __FILE__)
36
38
  ::FileUtils.mkdir_p(output_dir)
37
39
 
38
- cmd = %(protoc --plugin=./bin/protoc-gen-ruby --ruby_out=#{output_dir} -I #{proto_path} #{proto_files.join(' ')})
40
+ cmd = %(protoc --plugin=protoc-gen-ruby-protobuf=./bin/protoc-gen-ruby --ruby-protobuf_out=#{output_dir} -I #{proto_path} #{proto_files.join(' ')})
39
41
 
40
42
  puts cmd
41
- system(cmd)
43
+ system(cmd) || fail("Failed to compile rpc protos!")
42
44
 
43
45
  files = {
44
46
  'tmp/rpc/dynamic_discovery.pb.rb' => 'lib/protobuf/rpc',
@@ -46,7 +46,16 @@ module Protobuf
46
46
  generate_file(file_descriptor)
47
47
  end
48
48
 
49
- ::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(:file => generated_files)
49
+ ::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(
50
+ :file => generated_files,
51
+ :supported_features => supported_features,
52
+ )
53
+ end
54
+
55
+ def supported_features
56
+ # The only available feature is proto3 with optional fields.
57
+ # This is backwards compatible with proto2 optional fields.
58
+ ::Google::Protobuf::Compiler::CodeGeneratorResponse::Feature::FEATURE_PROTO3_OPTIONAL.to_i
50
59
  end
51
60
 
52
61
  Protobuf::Field::BaseField.module_eval do
@@ -21,6 +21,11 @@ module Google
21
21
  #
22
22
  class CodeGeneratorRequest < ::Protobuf::Message; end
23
23
  class CodeGeneratorResponse < ::Protobuf::Message
24
+ class Feature < ::Protobuf::Enum
25
+ define :FEATURE_NONE, 0
26
+ define :FEATURE_PROTO3_OPTIONAL, 1
27
+ end
28
+
24
29
  class File < ::Protobuf::Message; end
25
30
 
26
31
  end
@@ -51,6 +56,7 @@ module Google
51
56
  end
52
57
 
53
58
  optional :string, :error, 1
59
+ optional :uint64, :supported_features, 2
54
60
  repeated ::Google::Protobuf::Compiler::CodeGeneratorResponse::File, :file, 15
55
61
  end
56
62
 
@@ -1,3 +1,3 @@
1
1
  module Protobuf
2
- VERSION = '3.10.3' # rubocop:disable Style/MutableConstant
2
+ VERSION = '3.10.4' # rubocop:disable Style/MutableConstant
3
3
  end
@@ -22,6 +22,8 @@
22
22
  //
23
23
  // Protobufs needed for dynamic discovery zmq server and client.
24
24
 
25
+ syntax = "proto2";
26
+
25
27
  package protobuf.rpc.dynamicDiscovery;
26
28
 
27
29
  enum BeaconType {
@@ -44,6 +44,8 @@
44
44
  // plugin should be named "protoc-gen-$NAME", and will then be used when the
45
45
  // flag "--${NAME}_out" is passed to protoc.
46
46
 
47
+ syntax = "proto2";
48
+
47
49
  package google.protobuf.compiler;
48
50
  option java_package = "com.google.protobuf.compiler";
49
51
  option java_outer_classname = "PluginProtos";
@@ -86,6 +88,16 @@ message CodeGeneratorResponse {
86
88
  // exiting with a non-zero status code.
87
89
  optional string error = 1;
88
90
 
91
+ // A bitmask of supported features that the code generator supports.
92
+ // This is a bitwise "or" of values from the Feature enum.
93
+ optional uint64 supported_features = 2;
94
+
95
+ // Sync with code_generator.h.
96
+ enum Feature {
97
+ FEATURE_NONE = 0;
98
+ FEATURE_PROTO3_OPTIONAL = 1;
99
+ }
100
+
89
101
  // Represents a single generated file.
90
102
  message File {
91
103
  // The file name, relative to the output directory. The name must not
data/proto/rpc.proto CHANGED
@@ -22,6 +22,8 @@
22
22
  //
23
23
  // Protobufs needed for socket rpcs.
24
24
 
25
+ syntax = "proto2";
26
+
25
27
  package protobuf.socketrpc;
26
28
 
27
29
  message Request
@@ -17,7 +17,7 @@ RSpec.describe 'code generation' do
17
17
  end
18
18
 
19
19
  expected_output =
20
- ::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(:file => expected_file_descriptors)
20
+ ::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(:file => expected_file_descriptors, :supported_features => 1)
21
21
 
22
22
  code_generator = ::Protobuf::CodeGenerator.new(bytes)
23
23
  code_generator.eval_unknown_extensions!
@@ -37,7 +37,7 @@ RSpec.describe 'code generation' do
37
37
  :name => file_name, :content => file_content)
38
38
 
39
39
  expected_response =
40
- ::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(:file => [expected_file_output])
40
+ ::Google::Protobuf::Compiler::CodeGeneratorResponse.encode(:file => [expected_file_output], :supported_features => 1)
41
41
 
42
42
  code_generator = ::Protobuf::CodeGenerator.new(request.encode)
43
43
  code_generator.eval_unknown_extensions!
@@ -23,7 +23,7 @@ RSpec.describe ::Protobuf::CodeGenerator do
23
23
  end
24
24
 
25
25
  let(:expected_response_bytes) do
26
- COMPILER::CodeGeneratorResponse.encode(:file => [output_file1, output_file2])
26
+ COMPILER::CodeGeneratorResponse.encode(:file => [output_file1, output_file2], :supported_features => 1)
27
27
  end
28
28
 
29
29
  before do
@@ -0,0 +1,360 @@
1
+ # encoding: utf-8
2
+
3
+ ##
4
+ # This file is auto-generated. DO NOT EDIT!
5
+ #
6
+ require 'protobuf'
7
+
8
+ module Google
9
+ module Protobuf
10
+ ::Protobuf::Optionable.inject(self) { ::Google::Protobuf::FileOptions }
11
+
12
+ ##
13
+ # Message Classes
14
+ #
15
+ class FileDescriptorSet < ::Protobuf::Message; end
16
+ class FileDescriptorProto < ::Protobuf::Message; end
17
+ class DescriptorProto < ::Protobuf::Message
18
+ class ExtensionRange < ::Protobuf::Message; end
19
+ class ReservedRange < ::Protobuf::Message; end
20
+
21
+ end
22
+
23
+ class ExtensionRangeOptions < ::Protobuf::Message; end
24
+ class FieldDescriptorProto < ::Protobuf::Message
25
+ class Type < ::Protobuf::Enum
26
+ define :TYPE_DOUBLE, 1
27
+ define :TYPE_FLOAT, 2
28
+ define :TYPE_INT64, 3
29
+ define :TYPE_UINT64, 4
30
+ define :TYPE_INT32, 5
31
+ define :TYPE_FIXED64, 6
32
+ define :TYPE_FIXED32, 7
33
+ define :TYPE_BOOL, 8
34
+ define :TYPE_STRING, 9
35
+ define :TYPE_GROUP, 10
36
+ define :TYPE_MESSAGE, 11
37
+ define :TYPE_BYTES, 12
38
+ define :TYPE_UINT32, 13
39
+ define :TYPE_ENUM, 14
40
+ define :TYPE_SFIXED32, 15
41
+ define :TYPE_SFIXED64, 16
42
+ define :TYPE_SINT32, 17
43
+ define :TYPE_SINT64, 18
44
+ end
45
+
46
+ class Label < ::Protobuf::Enum
47
+ define :LABEL_OPTIONAL, 1
48
+ define :LABEL_REQUIRED, 2
49
+ define :LABEL_REPEATED, 3
50
+ end
51
+
52
+ end
53
+
54
+ class OneofDescriptorProto < ::Protobuf::Message; end
55
+ class EnumDescriptorProto < ::Protobuf::Message
56
+ class EnumReservedRange < ::Protobuf::Message; end
57
+
58
+ end
59
+
60
+ class EnumValueDescriptorProto < ::Protobuf::Message; end
61
+ class ServiceDescriptorProto < ::Protobuf::Message; end
62
+ class MethodDescriptorProto < ::Protobuf::Message; end
63
+ class FileOptions < ::Protobuf::Message
64
+ class OptimizeMode < ::Protobuf::Enum
65
+ define :SPEED, 1
66
+ define :CODE_SIZE, 2
67
+ define :LITE_RUNTIME, 3
68
+ end
69
+
70
+ end
71
+
72
+ class MessageOptions < ::Protobuf::Message; end
73
+ class FieldOptions < ::Protobuf::Message
74
+ class CType < ::Protobuf::Enum
75
+ define :STRING, 0
76
+ define :CORD, 1
77
+ define :STRING_PIECE, 2
78
+ end
79
+
80
+ class JSType < ::Protobuf::Enum
81
+ define :JS_NORMAL, 0
82
+ define :JS_STRING, 1
83
+ define :JS_NUMBER, 2
84
+ end
85
+
86
+ end
87
+
88
+ class OneofOptions < ::Protobuf::Message; end
89
+ class EnumOptions < ::Protobuf::Message; end
90
+ class EnumValueOptions < ::Protobuf::Message; end
91
+ class ServiceOptions < ::Protobuf::Message; end
92
+ class MethodOptions < ::Protobuf::Message
93
+ class IdempotencyLevel < ::Protobuf::Enum
94
+ define :IDEMPOTENCY_UNKNOWN, 0
95
+ define :NO_SIDE_EFFECTS, 1
96
+ define :IDEMPOTENT, 2
97
+ end
98
+
99
+ end
100
+
101
+ class UninterpretedOption < ::Protobuf::Message
102
+ class NamePart < ::Protobuf::Message; end
103
+
104
+ end
105
+
106
+ class SourceCodeInfo < ::Protobuf::Message
107
+ class Location < ::Protobuf::Message; end
108
+
109
+ end
110
+
111
+ class GeneratedCodeInfo < ::Protobuf::Message
112
+ class Annotation < ::Protobuf::Message; end
113
+
114
+ end
115
+
116
+
117
+
118
+ ##
119
+ # File Options
120
+ #
121
+ set_option :java_package, "com.google.protobuf"
122
+ set_option :java_outer_classname, "DescriptorProtos"
123
+ set_option :optimize_for, ::Google::Protobuf::FileOptions::OptimizeMode::SPEED
124
+ set_option :go_package, "google.golang.org/protobuf/types/descriptorpb"
125
+ set_option :cc_enable_arenas, true
126
+ set_option :objc_class_prefix, "GPB"
127
+ set_option :csharp_namespace, "Google.Protobuf.Reflection"
128
+
129
+
130
+ ##
131
+ # Message Fields
132
+ #
133
+ class FileDescriptorSet
134
+ repeated ::Google::Protobuf::FileDescriptorProto, :file, 1
135
+ end
136
+
137
+ class FileDescriptorProto
138
+ optional :string, :name, 1
139
+ optional :string, :package, 2
140
+ repeated :string, :dependency, 3
141
+ repeated :int32, :public_dependency, 10
142
+ repeated :int32, :weak_dependency, 11
143
+ repeated ::Google::Protobuf::DescriptorProto, :message_type, 4
144
+ repeated ::Google::Protobuf::EnumDescriptorProto, :enum_type, 5
145
+ repeated ::Google::Protobuf::ServiceDescriptorProto, :service, 6
146
+ repeated ::Google::Protobuf::FieldDescriptorProto, :extension, 7
147
+ optional ::Google::Protobuf::FileOptions, :options, 8
148
+ optional ::Google::Protobuf::SourceCodeInfo, :source_code_info, 9
149
+ optional :string, :syntax, 12
150
+ end
151
+
152
+ class DescriptorProto
153
+ class ExtensionRange
154
+ optional :int32, :start, 1
155
+ optional :int32, :end, 2
156
+ optional ::Google::Protobuf::ExtensionRangeOptions, :options, 3
157
+ end
158
+
159
+ class ReservedRange
160
+ optional :int32, :start, 1
161
+ optional :int32, :end, 2
162
+ end
163
+
164
+ optional :string, :name, 1
165
+ repeated ::Google::Protobuf::FieldDescriptorProto, :field, 2
166
+ repeated ::Google::Protobuf::FieldDescriptorProto, :extension, 6
167
+ repeated ::Google::Protobuf::DescriptorProto, :nested_type, 3
168
+ repeated ::Google::Protobuf::EnumDescriptorProto, :enum_type, 4
169
+ repeated ::Google::Protobuf::DescriptorProto::ExtensionRange, :extension_range, 5
170
+ repeated ::Google::Protobuf::OneofDescriptorProto, :oneof_decl, 8
171
+ optional ::Google::Protobuf::MessageOptions, :options, 7
172
+ repeated ::Google::Protobuf::DescriptorProto::ReservedRange, :reserved_range, 9
173
+ repeated :string, :reserved_name, 10
174
+ end
175
+
176
+ class ExtensionRangeOptions
177
+ repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
178
+ # Extension Fields
179
+ extensions 1000...536870912
180
+ end
181
+
182
+ class FieldDescriptorProto
183
+ optional :string, :name, 1
184
+ optional :int32, :number, 3
185
+ optional ::Google::Protobuf::FieldDescriptorProto::Label, :label, 4
186
+ optional ::Google::Protobuf::FieldDescriptorProto::Type, :type, 5
187
+ optional :string, :type_name, 6
188
+ optional :string, :extendee, 2
189
+ optional :string, :default_value, 7
190
+ optional :int32, :oneof_index, 9
191
+ optional :string, :json_name, 10
192
+ optional ::Google::Protobuf::FieldOptions, :options, 8
193
+ optional :bool, :proto3_optional, 17
194
+ end
195
+
196
+ class OneofDescriptorProto
197
+ optional :string, :name, 1
198
+ optional ::Google::Protobuf::OneofOptions, :options, 2
199
+ end
200
+
201
+ class EnumDescriptorProto
202
+ class EnumReservedRange
203
+ optional :int32, :start, 1
204
+ optional :int32, :end, 2
205
+ end
206
+
207
+ optional :string, :name, 1
208
+ repeated ::Google::Protobuf::EnumValueDescriptorProto, :value, 2
209
+ optional ::Google::Protobuf::EnumOptions, :options, 3
210
+ repeated ::Google::Protobuf::EnumDescriptorProto::EnumReservedRange, :reserved_range, 4
211
+ repeated :string, :reserved_name, 5
212
+ end
213
+
214
+ class EnumValueDescriptorProto
215
+ optional :string, :name, 1
216
+ optional :int32, :number, 2
217
+ optional ::Google::Protobuf::EnumValueOptions, :options, 3
218
+ end
219
+
220
+ class ServiceDescriptorProto
221
+ optional :string, :name, 1
222
+ repeated ::Google::Protobuf::MethodDescriptorProto, :method, 2
223
+ optional ::Google::Protobuf::ServiceOptions, :options, 3
224
+ end
225
+
226
+ class MethodDescriptorProto
227
+ optional :string, :name, 1
228
+ optional :string, :input_type, 2
229
+ optional :string, :output_type, 3
230
+ optional ::Google::Protobuf::MethodOptions, :options, 4
231
+ optional :bool, :client_streaming, 5, :default => false
232
+ optional :bool, :server_streaming, 6, :default => false
233
+ end
234
+
235
+ class FileOptions
236
+ optional :string, :java_package, 1
237
+ optional :string, :java_outer_classname, 8
238
+ optional :bool, :java_multiple_files, 10, :default => false
239
+ optional :bool, :java_generate_equals_and_hash, 20, :deprecated => true
240
+ optional :bool, :java_string_check_utf8, 27, :default => false
241
+ optional ::Google::Protobuf::FileOptions::OptimizeMode, :optimize_for, 9, :default => ::Google::Protobuf::FileOptions::OptimizeMode::SPEED
242
+ optional :string, :go_package, 11
243
+ optional :bool, :cc_generic_services, 16, :default => false
244
+ optional :bool, :java_generic_services, 17, :default => false
245
+ optional :bool, :py_generic_services, 18, :default => false
246
+ optional :bool, :php_generic_services, 42, :default => false
247
+ optional :bool, :deprecated, 23, :default => false
248
+ optional :bool, :cc_enable_arenas, 31, :default => true
249
+ optional :string, :objc_class_prefix, 36
250
+ optional :string, :csharp_namespace, 37
251
+ optional :string, :swift_prefix, 39
252
+ optional :string, :php_class_prefix, 40
253
+ optional :string, :php_namespace, 41
254
+ optional :string, :php_metadata_namespace, 44
255
+ optional :string, :ruby_package, 45
256
+ repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
257
+ # Extension Fields
258
+ extensions 1000...536870912
259
+ end
260
+
261
+ class MessageOptions
262
+ optional :bool, :message_set_wire_format, 1, :default => false
263
+ optional :bool, :no_standard_descriptor_accessor, 2, :default => false
264
+ optional :bool, :deprecated, 3, :default => false
265
+ optional :bool, :map_entry, 7
266
+ repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
267
+ # Extension Fields
268
+ extensions 1000...536870912
269
+ end
270
+
271
+ class FieldOptions
272
+ optional ::Google::Protobuf::FieldOptions::CType, :ctype, 1, :default => ::Google::Protobuf::FieldOptions::CType::STRING
273
+ optional :bool, :packed, 2
274
+ optional ::Google::Protobuf::FieldOptions::JSType, :jstype, 6, :default => ::Google::Protobuf::FieldOptions::JSType::JS_NORMAL
275
+ optional :bool, :lazy, 5, :default => false
276
+ optional :bool, :deprecated, 3, :default => false
277
+ optional :bool, :weak, 10, :default => false
278
+ repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
279
+ # Extension Fields
280
+ extensions 1000...536870912
281
+ end
282
+
283
+ class OneofOptions
284
+ repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
285
+ # Extension Fields
286
+ extensions 1000...536870912
287
+ end
288
+
289
+ class EnumOptions
290
+ optional :bool, :allow_alias, 2
291
+ optional :bool, :deprecated, 3, :default => false
292
+ repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
293
+ # Extension Fields
294
+ extensions 1000...536870912
295
+ end
296
+
297
+ class EnumValueOptions
298
+ optional :bool, :deprecated, 1, :default => false
299
+ repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
300
+ # Extension Fields
301
+ extensions 1000...536870912
302
+ end
303
+
304
+ class ServiceOptions
305
+ optional :bool, :deprecated, 33, :default => false
306
+ repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
307
+ # Extension Fields
308
+ extensions 1000...536870912
309
+ end
310
+
311
+ class MethodOptions
312
+ optional :bool, :deprecated, 33, :default => false
313
+ optional ::Google::Protobuf::MethodOptions::IdempotencyLevel, :idempotency_level, 34, :default => ::Google::Protobuf::MethodOptions::IdempotencyLevel::IDEMPOTENCY_UNKNOWN
314
+ repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
315
+ # Extension Fields
316
+ extensions 1000...536870912
317
+ end
318
+
319
+ class UninterpretedOption
320
+ class NamePart
321
+ required :string, :name_part, 1
322
+ required :bool, :is_extension, 2
323
+ end
324
+
325
+ repeated ::Google::Protobuf::UninterpretedOption::NamePart, :name, 2
326
+ optional :string, :identifier_value, 3
327
+ optional :uint64, :positive_int_value, 4
328
+ optional :int64, :negative_int_value, 5
329
+ optional :double, :double_value, 6
330
+ optional :bytes, :string_value, 7
331
+ optional :string, :aggregate_value, 8
332
+ end
333
+
334
+ class SourceCodeInfo
335
+ class Location
336
+ repeated :int32, :path, 1, :packed => true
337
+ repeated :int32, :span, 2, :packed => true
338
+ optional :string, :leading_comments, 3
339
+ optional :string, :trailing_comments, 4
340
+ repeated :string, :leading_detached_comments, 6
341
+ end
342
+
343
+ repeated ::Google::Protobuf::SourceCodeInfo::Location, :location, 1
344
+ end
345
+
346
+ class GeneratedCodeInfo
347
+ class Annotation
348
+ repeated :int32, :path, 1, :packed => true
349
+ optional :string, :source_file, 2
350
+ optional :int32, :begin, 3
351
+ optional :int32, :end, 4
352
+ end
353
+
354
+ repeated ::Google::Protobuf::GeneratedCodeInfo::Annotation, :annotation, 1
355
+ end
356
+
357
+ end
358
+
359
+ end
360
+
Binary file
@@ -12,8 +12,8 @@ module Foo
12
12
  # Enum Classes
13
13
  #
14
14
  class Frobnitz < ::Protobuf::Enum
15
- define :FROB, 1
16
- define :NITZ, 2
15
+ define :FROB, 0
16
+ define :NITZ, 1
17
17
  end
18
18
 
19
19
 
@@ -1,13 +1,13 @@
1
1
  // Use protoc v3.0.0 to compile this file into map-test.bin:
2
- // protoc --descriptor_set_out=map-test.bin map-test.proto
2
+ // protoc --descriptor_set_out=map-test.bin map-test.proto
3
3
 
4
4
  syntax = "proto2";
5
5
 
6
6
  package foo;
7
7
 
8
8
  enum Frobnitz {
9
- FROB = 1;
10
- NITZ = 2;
9
+ FROB = 0;
10
+ NITZ = 1;
11
11
  }
12
12
 
13
13
  message Baz {
@@ -0,0 +1,22 @@
1
+ # encoding: utf-8
2
+
3
+ ##
4
+ # This file is auto-generated. DO NOT EDIT!
5
+ #
6
+ require 'protobuf'
7
+
8
+
9
+ ##
10
+ # Message Classes
11
+ #
12
+ class SomethingWithOptionalFields < ::Protobuf::Message; end
13
+
14
+
15
+ ##
16
+ # Message Fields
17
+ #
18
+ class SomethingWithOptionalFields
19
+ optional :string, :i_am_optional, 1
20
+ optional :string, :i_am_not_optional, 2
21
+ end
22
+
@@ -0,0 +1,6 @@
1
+ syntax = "proto3";
2
+
3
+ message SomethingWithOptionalFields {
4
+ optional string i_am_optional = 1;
5
+ string i_am_not_optional = 2;
6
+ }
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: protobuf
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.10.3
4
+ version: 3.10.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - BJ Neilsen
8
8
  - Brandon Dewitt
9
9
  - Devin Christensen
10
10
  - Adam Hutchison
11
- autorequire:
11
+ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-01-07 00:00:00.000000000 Z
14
+ date: 2021-06-30 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport
@@ -263,10 +263,10 @@ executables:
263
263
  extensions: []
264
264
  extra_rdoc_files: []
265
265
  files:
266
+ - ".circleci/config.yml"
266
267
  - ".gitignore"
267
268
  - ".rubocop.yml"
268
269
  - ".rubocop_todo.yml"
269
- - ".travis.yml"
270
270
  - ".yardopts"
271
271
  - CHANGES.md
272
272
  - CONTRIBUTING.md
@@ -276,7 +276,6 @@ files:
276
276
  - Rakefile
277
277
  - bin/protoc-gen-ruby
278
278
  - bin/rpc_server
279
- - install-protobuf.sh
280
279
  - lib/protobuf.rb
281
280
  - lib/protobuf/cli.rb
282
281
  - lib/protobuf/code_generator.rb
@@ -438,6 +437,7 @@ files:
438
437
  - spec/lib/protobuf_spec.rb
439
438
  - spec/spec_helper.rb
440
439
  - spec/support/all.rb
440
+ - spec/support/google/protobuf/descriptor.pb.rb
441
441
  - spec/support/packed_field.rb
442
442
  - spec/support/protos/all_types.data.bin
443
443
  - spec/support/protos/all_types.data.txt
@@ -459,6 +459,8 @@ files:
459
459
  - spec/support/protos/map-test.proto
460
460
  - spec/support/protos/multi_field_extensions.pb.rb
461
461
  - spec/support/protos/multi_field_extensions.proto
462
+ - spec/support/protos/optional_v3_fields.pb.rb
463
+ - spec/support/protos/optional_v3_fields.proto
462
464
  - spec/support/protos/resource.pb.rb
463
465
  - spec/support/protos/resource.proto
464
466
  - spec/support/resource_service.rb
@@ -469,7 +471,7 @@ homepage: https://github.com/localshred/protobuf
469
471
  licenses:
470
472
  - MIT
471
473
  metadata: {}
472
- post_install_message:
474
+ post_install_message:
473
475
  rdoc_options: []
474
476
  require_paths:
475
477
  - lib
@@ -484,9 +486,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
484
486
  - !ruby/object:Gem::Version
485
487
  version: '0'
486
488
  requirements: []
487
- rubyforge_project:
488
- rubygems_version: 2.7.6
489
- signing_key:
489
+ rubygems_version: 3.0.3
490
+ signing_key:
490
491
  specification_version: 4
491
492
  summary: Google Protocol Buffers serialization and RPC implementation for Ruby.
492
493
  test_files:
@@ -552,6 +553,7 @@ test_files:
552
553
  - spec/lib/protobuf_spec.rb
553
554
  - spec/spec_helper.rb
554
555
  - spec/support/all.rb
556
+ - spec/support/google/protobuf/descriptor.pb.rb
555
557
  - spec/support/packed_field.rb
556
558
  - spec/support/protos/all_types.data.bin
557
559
  - spec/support/protos/all_types.data.txt
@@ -573,6 +575,8 @@ test_files:
573
575
  - spec/support/protos/map-test.proto
574
576
  - spec/support/protos/multi_field_extensions.pb.rb
575
577
  - spec/support/protos/multi_field_extensions.proto
578
+ - spec/support/protos/optional_v3_fields.pb.rb
579
+ - spec/support/protos/optional_v3_fields.proto
576
580
  - spec/support/protos/resource.pb.rb
577
581
  - spec/support/protos/resource.proto
578
582
  - spec/support/resource_service.rb
data/.travis.yml DELETED
@@ -1,40 +0,0 @@
1
- before_install:
2
- - wget https://github.com/zeromq/libzmq/releases/download/v4.2.1/zeromq-4.2.1.tar.gz
3
- - tar xvf zeromq-4.2.1.tar.gz
4
- - cd zeromq-4.2.1
5
- - ./configure
6
- - make -j4
7
- - sudo make install
8
- # Retrun to project directory
9
- - cd ..
10
- - sudo -E ./install-protobuf.sh
11
- - java -Xmx1g -version
12
- - javac -J-Xmx1g -version
13
- - export JRUBY_OPTS=-J-Xmx1g
14
- - gem update bundler
15
- language: ruby
16
- rvm:
17
- - 1.9.3
18
- - 2.0.0
19
- - 2.1
20
- - 2.2
21
- - 2.3
22
- - 2.4
23
- - 2.5
24
- - jruby-9.1.17.0
25
- - jruby-9.2.5.0
26
- - rbx-2
27
- env:
28
- - PROTOBUF_VERSION=2.6.1
29
- - PROTOBUF_VERSION=3.0.0-alpha-2
30
- matrix:
31
- allow_failures:
32
- - rvm: rbx-2
33
- - env: PROTOBUF_VERSION=3.0.0-alpha-2
34
- notifications:
35
- webhooks:
36
- urls:
37
- - https://webhooks.gitter.im/e/51a956bcd2b1854d6756
38
- on_success: change # options: [always|never|change] default: always
39
- on_failure: always # options: [always|never|change] default: always
40
- on_start: false # default: false
data/install-protobuf.sh DELETED
@@ -1,28 +0,0 @@
1
- #!/usr/bin/env sh
2
-
3
- set -ex
4
-
5
- gdie() {
6
- echo "$@" >&2
7
- exit 1
8
- }
9
-
10
- test -n "$PROTOBUF_VERSION" || die "PROTOBUF_VERSION env var is undefined"
11
-
12
- case "$PROTOBUF_VERSION" in
13
- 2*)
14
- basename=protobuf-$PROTOBUF_VERSION
15
- ;;
16
- 3*)
17
- basename=protobuf-cpp-$PROTOBUF_VERSION
18
- ;;
19
- *)
20
- die "unknown protobuf version: $PROTOBUF_VERSION"
21
- ;;
22
- esac
23
-
24
- curl -sL https://github.com/google/protobuf/releases/download/v$PROTOBUF_VERSION/$basename.tar.gz | tar zx
25
-
26
- cd protobuf-$PROTOBUF_VERSION
27
-
28
- ./configure --prefix=/usr && make -j2 && make install