feedx 0.10.1 → 0.12.2

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/.travis.yml +13 -6
  4. data/Gemfile.lock +42 -19
  5. data/Makefile +5 -0
  6. data/consumer_test.go +5 -5
  7. data/feedx.gemspec +3 -2
  8. data/feedx_test.go +12 -9
  9. data/format.go +16 -16
  10. data/format_test.go +6 -7
  11. data/go.mod +5 -10
  12. data/go.sum +43 -24
  13. data/internal/testdata/testdata.pb.go +124 -0
  14. data/internal/testdata/testdata.proto +15 -0
  15. data/lib/feedx/cache/abstract.rb +2 -2
  16. data/lib/feedx/compression.rb +11 -4
  17. data/lib/feedx/compression/abstract.rb +2 -2
  18. data/lib/feedx/compression/gzip.rb +14 -16
  19. data/lib/feedx/compression/none.rb +4 -4
  20. data/lib/feedx/consumer.rb +17 -11
  21. data/lib/feedx/format.rb +18 -9
  22. data/lib/feedx/format/abstract.rb +42 -13
  23. data/lib/feedx/format/json.rb +12 -8
  24. data/lib/feedx/format/parquet.rb +102 -0
  25. data/lib/feedx/format/protobuf.rb +16 -8
  26. data/lib/feedx/producer.rb +20 -14
  27. data/lib/feedx/stream.rb +42 -25
  28. data/producer_test.go +1 -2
  29. data/reader_test.go +7 -8
  30. data/spec/feedx/compression/gzip_spec.rb +2 -2
  31. data/spec/feedx/compression/none_spec.rb +2 -2
  32. data/spec/feedx/compression_spec.rb +9 -9
  33. data/spec/feedx/consumer_spec.rb +6 -3
  34. data/spec/feedx/format/abstract_spec.rb +11 -8
  35. data/spec/feedx/format/json_spec.rb +12 -11
  36. data/spec/feedx/format/parquet_spec.rb +30 -0
  37. data/spec/feedx/format/protobuf_spec.rb +12 -11
  38. data/spec/feedx/format_spec.rb +8 -8
  39. data/spec/feedx/producer_spec.rb +6 -0
  40. data/spec/feedx/stream_spec.rb +28 -3
  41. data/spec/spec_helper.rb +17 -1
  42. data/writer_test.go +1 -1
  43. metadata +22 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d84be642c90e028ccba4dabbe561e8305126f0b66cc008204ab961645a9309b4
4
- data.tar.gz: 9a63d2736d1ca689f1596d60294c90d6ed1c869b42192803712b32d347e034b5
3
+ metadata.gz: 898f80c359182952ab192f95fb05dc1e6ae806f0d661d71244813b779595d0f8
4
+ data.tar.gz: 43778c6084131e8ffa9ba59b7836fe198f7595e5dc07af1c4e11a9b03ac49419
5
5
  SHA512:
6
- metadata.gz: 7c7baa1af8c07105c8330da14000a5883954787989c675bc483d87fb8d11dc0c5423d541162646452252443dcdbb6fdff51ea7f53aad5b8f8a1812db89e3dbb6
7
- data.tar.gz: e48503c89d01a15ea309b002a2713413d8a635ea89e5667a11bfd4c90df0aabfb4ca6bb44341aadbe30d8fd846b9911e3d1f5eb8cfe3a5ef43a286044997b575
6
+ metadata.gz: fa8f2e4e26c140bb4c2732655ac73c39ef20055f215ac39c8c62bd77e7cf27d7d8140287ed6c90a4c4da6bf461d491123f76784ce5d770189a45da7fea897965
7
+ data.tar.gz: a35d5296c5aec452b450e95985535c98b6b99f1a872624b3ad3974cbb0f56b0e6d0ae8395edd849c97242ae0a77ee77537404cb3dce22882a3a310a6e0f04a04
@@ -4,3 +4,5 @@ inherit_from:
4
4
 
5
5
  AllCops:
6
6
  TargetRubyVersion: "2.4"
7
+ Metrics/ParameterLists:
8
+ Max: 10
@@ -2,16 +2,23 @@ matrix:
2
2
  include:
3
3
  - language: ruby
4
4
  rvm:
5
- - 2.6
5
+ - 2.7
6
6
  before_install:
7
- - gem install bundler
7
+ - wget https://apache.bintray.com/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-archive-keyring-latest-$(lsb_release --codename --short).deb
8
+ - sudo apt install -y ./apache-arrow-archive-keyring-latest-$(lsb_release --codename --short).deb
9
+ - sudo apt update
10
+ - sudo apt install -y libarrow-dev libarrow-glib-dev libarrow-dataset-dev libplasma-dev libplasma-glib-dev libgandiva-dev libgandiva-glib-dev libparquet-dev libparquet-glib-dev
8
11
  - language: ruby
9
12
  rvm:
10
- - 2.5
13
+ - 2.6
11
14
  before_install:
12
- - gem install bundler
15
+ - wget https://apache.bintray.com/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-archive-keyring-latest-$(lsb_release --codename --short).deb
16
+ - sudo apt install -y ./apache-arrow-archive-keyring-latest-$(lsb_release --codename --short).deb
17
+ - sudo apt update
18
+ - sudo apt install -y libarrow-dev libarrow-glib-dev libarrow-dataset-dev libplasma-dev libplasma-glib-dev libgandiva-dev libgandiva-glib-dev libparquet-dev libparquet-glib-dev
19
+ - language: go
20
+ go:
21
+ - 1.14.x
13
22
  - language: go
14
23
  go:
15
24
  - 1.13.x
16
- env:
17
- - GO111MODULE=on
@@ -1,48 +1,70 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- feedx (0.10.1)
4
+ feedx (0.12.2)
5
5
  bfs (>= 0.5.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- ast (2.4.0)
11
- bfs (0.6.0)
12
- diff-lcs (1.3)
13
- google-protobuf (3.11.2)
14
- jaro_winkler (1.5.4)
15
- parallel (1.19.1)
16
- parser (2.7.0.2)
17
- ast (~> 2.4.0)
10
+ ast (2.4.1)
11
+ bfs (0.7.2)
12
+ diff-lcs (1.4.4)
13
+ extpp (0.0.8)
14
+ gio2 (3.4.3)
15
+ gobject-introspection (= 3.4.3)
16
+ glib2 (3.4.3)
17
+ native-package-installer (>= 1.0.3)
18
+ pkg-config (>= 1.3.5)
19
+ gobject-introspection (3.4.3)
20
+ glib2 (= 3.4.3)
21
+ google-protobuf (3.12.2)
22
+ native-package-installer (1.0.9)
23
+ parallel (1.19.2)
24
+ parser (2.7.1.4)
25
+ ast (~> 2.4.1)
18
26
  pbio (0.2.1)
19
27
  google-protobuf
28
+ pkg-config (1.4.1)
20
29
  rainbow (3.0.0)
21
30
  rake (13.0.1)
31
+ red-arrow (0.17.1)
32
+ extpp (>= 0.0.7)
33
+ gio2 (>= 3.3.6)
34
+ native-package-installer
35
+ pkg-config
36
+ red-parquet (0.17.1)
37
+ red-arrow (= 0.17.1)
38
+ regexp_parser (1.7.1)
39
+ rexml (3.2.4)
22
40
  rspec (3.9.0)
23
41
  rspec-core (~> 3.9.0)
24
42
  rspec-expectations (~> 3.9.0)
25
43
  rspec-mocks (~> 3.9.0)
26
- rspec-core (3.9.1)
27
- rspec-support (~> 3.9.1)
28
- rspec-expectations (3.9.0)
44
+ rspec-core (3.9.2)
45
+ rspec-support (~> 3.9.3)
46
+ rspec-expectations (3.9.2)
29
47
  diff-lcs (>= 1.2.0, < 2.0)
30
48
  rspec-support (~> 3.9.0)
31
49
  rspec-mocks (3.9.1)
32
50
  diff-lcs (>= 1.2.0, < 2.0)
33
51
  rspec-support (~> 3.9.0)
34
- rspec-support (3.9.2)
35
- rubocop (0.79.0)
36
- jaro_winkler (~> 1.5.1)
52
+ rspec-support (3.9.3)
53
+ rubocop (0.86.0)
37
54
  parallel (~> 1.10)
38
55
  parser (>= 2.7.0.1)
39
56
  rainbow (>= 2.2.2, < 4.0)
57
+ regexp_parser (>= 1.7)
58
+ rexml
59
+ rubocop-ast (>= 0.0.3, < 1.0)
40
60
  ruby-progressbar (~> 1.7)
41
- unicode-display_width (>= 1.4.0, < 1.7)
42
- rubocop-performance (1.5.2)
61
+ unicode-display_width (>= 1.4.0, < 2.0)
62
+ rubocop-ast (0.1.0)
63
+ parser (>= 2.7.0.1)
64
+ rubocop-performance (1.6.1)
43
65
  rubocop (>= 0.71.0)
44
66
  ruby-progressbar (1.10.1)
45
- unicode-display_width (1.6.1)
67
+ unicode-display_width (1.7.0)
46
68
 
47
69
  PLATFORMS
48
70
  ruby
@@ -53,9 +75,10 @@ DEPENDENCIES
53
75
  google-protobuf (>= 3.7.0.pre.rc2)
54
76
  pbio
55
77
  rake
78
+ red-parquet
56
79
  rspec
57
80
  rubocop
58
81
  rubocop-performance
59
82
 
60
83
  BUNDLED WITH
61
- 2.1.2
84
+ 2.1.4
data/Makefile CHANGED
@@ -5,3 +5,8 @@ test:
5
5
 
6
6
  vet:
7
7
  go vet ./...
8
+
9
+ proto: internal/testdata/testdata.pb.go
10
+
11
+ %.pb.go: %.proto
12
+ protoc -I=. --gogo_out=paths=source_relative:. $<
@@ -7,7 +7,7 @@ import (
7
7
 
8
8
  "github.com/bsm/bfs"
9
9
  "github.com/bsm/feedx"
10
- tbp "github.com/golang/protobuf/proto/proto3_proto"
10
+ "github.com/bsm/feedx/internal/testdata"
11
11
  . "github.com/onsi/ginkgo"
12
12
  . "github.com/onsi/gomega"
13
13
  )
@@ -23,16 +23,16 @@ var _ = Describe("Consumer", func() {
23
23
 
24
24
  var err error
25
25
  subject, err = feedx.NewConsumerForRemote(ctx, obj, nil, func(r *feedx.Reader) (interface{}, error) {
26
- var msgs []tbp.Message
26
+ var msgs []*testdata.MockMessage
27
27
  for {
28
- var msg tbp.Message
28
+ var msg testdata.MockMessage
29
29
  if err := r.Decode(&msg); err == io.EOF {
30
30
  break
31
31
  }
32
32
  if err != nil {
33
33
  return nil, err
34
34
  }
35
- msgs = append(msgs, msg)
35
+ msgs = append(msgs, &msg)
36
36
  }
37
37
  return msgs, nil
38
38
  })
@@ -47,7 +47,7 @@ var _ = Describe("Consumer", func() {
47
47
  Expect(subject.LastSync()).To(BeTemporally("~", time.Now(), time.Second))
48
48
  Expect(subject.LastModified()).To(BeTemporally("~", time.Unix(1515151515, 0), time.Second))
49
49
  Expect(subject.NumRead()).To(Equal(2))
50
- Expect(subject.Data()).To(Equal([]tbp.Message{fixture, fixture}))
50
+ Expect(subject.Data()).To(ConsistOf(seed(), seed()))
51
51
  Expect(subject.Close()).To(Succeed())
52
52
  })
53
53
  })
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'feedx'
3
- s.version = '0.10.1'
3
+ s.version = '0.12.2'
4
4
  s.authors = ['Black Square Media Ltd']
5
5
  s.email = ['info@blacksquaremedia.com']
6
6
  s.summary = %(Exchange data between components via feeds)
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.homepage = 'https://github.com/bsm/feedx'
9
9
  s.license = 'Apache-2.0'
10
10
 
11
- s.files = `git ls-files -z`.split("\x0").reject {|f| f.match(%r{^spec/}) }
11
+ s.files = `git ls-files -z`.split("\x0").reject {|f| f.start_with?('spec/') }
12
12
  s.test_files = `git ls-files -z -- spec/*`.split("\x0")
13
13
  s.require_paths = ['lib']
14
14
  s.required_ruby_version = '>= 2.4'
@@ -18,6 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.add_development_dependency 'bundler'
19
19
  s.add_development_dependency 'pbio'
20
20
  s.add_development_dependency 'rake'
21
+ s.add_development_dependency 'red-parquet'
21
22
  s.add_development_dependency 'rspec'
22
23
  s.add_development_dependency 'rubocop'
23
24
  s.add_development_dependency 'rubocop-performance'
@@ -8,13 +8,11 @@ import (
8
8
 
9
9
  "github.com/bsm/bfs"
10
10
  "github.com/bsm/feedx"
11
- tbp "github.com/golang/protobuf/proto/proto3_proto"
11
+ "github.com/bsm/feedx/internal/testdata"
12
12
  . "github.com/onsi/ginkgo"
13
13
  . "github.com/onsi/gomega"
14
14
  )
15
15
 
16
- // ------------------------------------------------------------------------
17
-
18
16
  var memStore *bfs.InMem
19
17
 
20
18
  func init() {
@@ -24,12 +22,18 @@ func init() {
24
22
  })
25
23
  }
26
24
 
27
- var fixture = tbp.Message{
28
- Name: "Joe",
29
- Hilarity: tbp.Message_BILL_BAILEY,
30
- HeightInCm: 180,
25
+ // ------------------------------------------------------------------------
26
+
27
+ func seed() *testdata.MockMessage {
28
+ return &testdata.MockMessage{
29
+ Name: "Joe",
30
+ Enum: testdata.MockEnum_FIRST,
31
+ Height: 180,
32
+ }
31
33
  }
32
34
 
35
+ // ------------------------------------------------------------------------
36
+
33
37
  func writeMulti(obj *bfs.Object, numEntries int) error {
34
38
  w := feedx.NewWriter(context.Background(), obj, &feedx.WriterOptions{
35
39
  LastMod: time.Unix(1515151515, 123456789),
@@ -37,8 +41,7 @@ func writeMulti(obj *bfs.Object, numEntries int) error {
37
41
  defer w.Discard()
38
42
 
39
43
  for i := 0; i < numEntries; i++ {
40
- fix := fixture
41
- if err := w.Encode(&fix); err != nil {
44
+ if err := w.Encode(seed()); err != nil {
42
45
  return err
43
46
  }
44
47
  }
data/format.go CHANGED
@@ -7,9 +7,8 @@ import (
7
7
  "io"
8
8
  "path"
9
9
 
10
- "github.com/golang/protobuf/proto"
11
-
12
10
  pbio "github.com/gogo/protobuf/io"
11
+ "github.com/gogo/protobuf/proto"
13
12
  )
14
13
 
15
14
  var errNoFormat = errors.New("feedx: no format detected")
@@ -92,8 +91,6 @@ func (jsonEncoderWrapper) Close() error { return nil }
92
91
 
93
92
  // --------------------------------------------------------------------
94
93
 
95
- const protobufMaxMessageSize = 20 * 1024 * 1024 // 20MB
96
-
97
94
  // ProtobufFormat provides a Format implemention for Protobuf.
98
95
  var ProtobufFormat = protobufFormat{}
99
96
 
@@ -101,32 +98,35 @@ type protobufFormat struct{}
101
98
 
102
99
  // NewDecoder implements Format.
103
100
  func (protobufFormat) NewDecoder(r io.Reader) (FormatDecoder, error) {
104
- rc := pbio.NewDelimitedReader(r, protobufMaxMessageSize)
105
- return protobufDecoderWrapper{ReadCloser: rc}, nil
101
+ return protobufWrapper{Reader: pbio.NewDelimitedReader(r, 1<<28)}, nil
106
102
  }
107
103
 
108
104
  // NewEncoder implements Format.
109
105
  func (protobufFormat) NewEncoder(w io.Writer) (FormatEncoder, error) {
110
- wc := pbio.NewDelimitedWriter(w)
111
- return protobufEncoderWrapper{WriteCloser: wc}, nil
106
+ return protobufWrapper{Writer: pbio.NewDelimitedWriter(w)}, nil
112
107
  }
113
108
 
114
- type protobufDecoderWrapper struct{ pbio.ReadCloser }
109
+ type protobufWrapper struct {
110
+ pbio.Reader
111
+ pbio.Writer
112
+ }
115
113
 
116
- func (w protobufDecoderWrapper) Decode(v interface{}) error {
114
+ func (w protobufWrapper) Decode(v interface{}) error {
117
115
  msg, ok := v.(proto.Message)
118
116
  if !ok {
119
- return fmt.Errorf("feedx: value %v is not a proto.Message", v)
117
+ return fmt.Errorf("value %v (%T) is not a proto.Message", v, v)
120
118
  }
121
- return w.ReadCloser.ReadMsg(msg)
119
+ return w.ReadMsg(msg)
122
120
  }
123
121
 
124
- type protobufEncoderWrapper struct{ pbio.WriteCloser }
125
-
126
- func (w protobufEncoderWrapper) Encode(v interface{}) error {
122
+ func (w protobufWrapper) Encode(v interface{}) error {
127
123
  msg, ok := v.(proto.Message)
128
124
  if !ok {
129
- return fmt.Errorf("feedx: value %v is not a proto.Message", v)
125
+ return fmt.Errorf("value %v (%T) is not a proto.Message", v, v)
130
126
  }
131
127
  return w.WriteMsg(msg)
132
128
  }
129
+
130
+ func (protobufWrapper) Close() error {
131
+ return nil
132
+ }
@@ -5,7 +5,7 @@ import (
5
5
  "io"
6
6
 
7
7
  "github.com/bsm/feedx"
8
- tbp "github.com/golang/protobuf/proto/proto3_proto"
8
+ "github.com/bsm/feedx/internal/testdata"
9
9
  . "github.com/onsi/ginkgo"
10
10
  . "github.com/onsi/gomega"
11
11
  )
@@ -18,24 +18,23 @@ var _ = Describe("Format", func() {
18
18
  Expect(err).NotTo(HaveOccurred())
19
19
  defer enc.Close()
20
20
 
21
- fix := fixture
22
- Expect(enc.Encode(&fix)).To(Succeed())
23
- Expect(enc.Encode(&fix)).To(Succeed())
21
+ Expect(enc.Encode(seed())).To(Succeed())
22
+ Expect(enc.Encode(seed())).To(Succeed())
24
23
  Expect(enc.Close()).To(Succeed())
25
24
 
26
25
  dec, err := subject.NewDecoder(buf)
27
26
  Expect(err).NotTo(HaveOccurred())
28
27
  defer dec.Close()
29
28
 
30
- v1 := new(tbp.Message)
29
+ v1 := new(testdata.MockMessage)
31
30
  Expect(dec.Decode(v1)).To(Succeed())
32
31
  Expect(v1.Name).To(Equal("Joe"))
33
32
 
34
- v2 := new(tbp.Message)
33
+ v2 := new(testdata.MockMessage)
35
34
  Expect(dec.Decode(v2)).To(Succeed())
36
35
  Expect(v2.Name).To(Equal("Joe"))
37
36
 
38
- v3 := new(tbp.Message)
37
+ v3 := new(testdata.MockMessage)
39
38
  Expect(dec.Decode(v3)).To(MatchError(io.EOF))
40
39
 
41
40
  Expect(dec.Close()).To(Succeed())
data/go.mod CHANGED
@@ -1,15 +1,10 @@
1
1
  module github.com/bsm/feedx
2
2
 
3
+ go 1.13
4
+
3
5
  require (
4
- github.com/bsm/bfs v0.9.0
6
+ github.com/bsm/bfs v0.10.4
5
7
  github.com/gogo/protobuf v1.3.1
6
- github.com/golang/protobuf v1.3.2
7
- github.com/onsi/ginkgo v1.10.2
8
- github.com/onsi/gomega v1.7.0
9
- golang.org/x/net v0.0.0-20191007182048-72f939374954 // indirect
10
- golang.org/x/sys v0.0.0-20191008105621-543471e840be // indirect
11
- gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
12
- gopkg.in/yaml.v2 v2.2.4 // indirect
8
+ github.com/onsi/ginkgo v1.13.0
9
+ github.com/onsi/gomega v1.10.1
13
10
  )
14
-
15
- go 1.13
data/go.sum CHANGED
@@ -1,16 +1,25 @@
1
1
  github.com/bmatcuk/doublestar v1.2.2 h1:oC24CykoSAB8zd7XgruHo33E0cHJf/WhQA/7BeXj+x0=
2
2
  github.com/bmatcuk/doublestar v1.2.2/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE=
3
- github.com/bsm/bfs v0.9.0 h1:7sUB3a5ZzzhBlCELY+2pqCaI6MbO7F2a0jhIgHihhFs=
4
- github.com/bsm/bfs v0.9.0/go.mod h1:N3md8kQvlteRDcfc8tqw759yW98dhj+6seWEVcg4CmM=
5
- github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
3
+ github.com/bsm/bfs v0.10.4 h1:59I1FBEcIku/1MfPyIEeBfKm+ICaJ4lVEcago/YeCLg=
4
+ github.com/bsm/bfs v0.10.4/go.mod h1:N3md8kQvlteRDcfc8tqw759yW98dhj+6seWEVcg4CmM=
6
5
  github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
6
+ github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
7
+ github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
7
8
  github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=
8
9
  github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
9
- github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
10
10
  github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
11
- github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
12
11
  github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
13
- github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
12
+ github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
13
+ github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
14
+ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
15
+ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
16
+ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
17
+ github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
18
+ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
19
+ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
20
+ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
21
+ github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
22
+ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
14
23
  github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
15
24
  github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
16
25
  github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
@@ -19,45 +28,55 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN
19
28
  github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
20
29
  github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
21
30
  github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
22
- github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw=
31
+ github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78=
32
+ github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
23
33
  github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
24
- github.com/onsi/ginkgo v1.8.0 h1:VkHVNpR4iVnU8XQR6DBm8BqYjN7CRzw+xKUbVVbbW9w=
25
34
  github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
26
- github.com/onsi/ginkgo v1.10.2 h1:uqH7bpe+ERSiDa34FDOF7RikN6RzXgduUF8yarlZp94=
27
- github.com/onsi/ginkgo v1.10.2/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
28
- github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo=
35
+ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
36
+ github.com/onsi/ginkgo v1.13.0 h1:M76yO2HkZASFjXL0HSoZJ1AYEmQxNJmY41Jx1zNUq1Y=
37
+ github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0=
29
38
  github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
30
- github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=
31
- github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
39
+ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
40
+ github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE=
41
+ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
42
+ github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw=
32
43
  golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
33
44
  golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
34
45
  golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
35
- golang.org/x/net v0.0.0-20191007182048-72f939374954 h1:JGZucVF/L/TotR719NbujzadOZ2AgnYlqphQGHDCKaU=
36
- golang.org/x/net v0.0.0-20191007182048-72f939374954/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
46
+ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7 h1:AeiKBIuRw3UomYXSbLy0Mc2dDLfdtbT/IVn4keq83P0=
47
+ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
37
48
  golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
38
49
  golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
39
50
  golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
40
51
  golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
41
- golang.org/x/sys v0.0.0-20191008105621-543471e840be h1:QAcqgptGM8IQBC9K/RC4o+O9YmqEm0diQn9QmZw/0mU=
42
- golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
43
- golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
52
+ golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
53
+ golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
54
+ golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
55
+ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
56
+ golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 h1:DYfZAGf2WMFjMxbgTjaC+2HC7NkNAQs+6Q8b9WEB/F4=
57
+ golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
44
58
  golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
45
59
  golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
46
60
  golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
47
61
  golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
48
62
  golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
63
+ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
64
+ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
65
+ google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
66
+ google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
67
+ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
68
+ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
69
+ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
70
+ google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM=
71
+ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
49
72
  gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
50
73
  gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
51
74
  gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
52
- gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
53
- gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
54
- gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
55
75
  gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
56
76
  gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
57
77
  gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
58
- gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=
59
78
  gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
60
- gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
61
79
  gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
62
- gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
63
80
  gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
81
+ gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
82
+ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=