deimos-ruby 1.6.3 → 1.8.1.pre.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +9 -0
  3. data/.rubocop.yml +22 -16
  4. data/.ruby-version +1 -1
  5. data/CHANGELOG.md +42 -0
  6. data/Gemfile.lock +125 -98
  7. data/README.md +164 -16
  8. data/Rakefile +1 -1
  9. data/deimos-ruby.gemspec +4 -3
  10. data/docs/ARCHITECTURE.md +144 -0
  11. data/docs/CONFIGURATION.md +27 -0
  12. data/lib/deimos.rb +8 -7
  13. data/lib/deimos/active_record_consume/batch_consumption.rb +159 -0
  14. data/lib/deimos/active_record_consume/batch_slicer.rb +27 -0
  15. data/lib/deimos/active_record_consume/message_consumption.rb +58 -0
  16. data/lib/deimos/active_record_consume/schema_model_converter.rb +52 -0
  17. data/lib/deimos/active_record_consumer.rb +33 -75
  18. data/lib/deimos/active_record_producer.rb +23 -0
  19. data/lib/deimos/batch_consumer.rb +2 -140
  20. data/lib/deimos/config/configuration.rb +28 -10
  21. data/lib/deimos/consume/batch_consumption.rb +150 -0
  22. data/lib/deimos/consume/message_consumption.rb +94 -0
  23. data/lib/deimos/consumer.rb +79 -70
  24. data/lib/deimos/kafka_message.rb +1 -1
  25. data/lib/deimos/kafka_topic_info.rb +22 -3
  26. data/lib/deimos/message.rb +6 -1
  27. data/lib/deimos/metrics/provider.rb +0 -2
  28. data/lib/deimos/poll_info.rb +9 -0
  29. data/lib/deimos/schema_backends/avro_base.rb +28 -1
  30. data/lib/deimos/schema_backends/base.rb +15 -2
  31. data/lib/deimos/tracing/provider.rb +0 -2
  32. data/lib/deimos/utils/db_poller.rb +149 -0
  33. data/lib/deimos/utils/db_producer.rb +59 -16
  34. data/lib/deimos/utils/deadlock_retry.rb +68 -0
  35. data/lib/deimos/utils/lag_reporter.rb +19 -26
  36. data/lib/deimos/version.rb +1 -1
  37. data/lib/generators/deimos/active_record/templates/migration.rb.tt +28 -0
  38. data/lib/generators/deimos/active_record/templates/model.rb.tt +5 -0
  39. data/lib/generators/deimos/active_record_generator.rb +79 -0
  40. data/lib/generators/deimos/db_backend/templates/migration +1 -0
  41. data/lib/generators/deimos/db_backend/templates/rails3_migration +1 -0
  42. data/lib/generators/deimos/db_poller/templates/migration +11 -0
  43. data/lib/generators/deimos/db_poller/templates/rails3_migration +16 -0
  44. data/lib/generators/deimos/db_poller_generator.rb +48 -0
  45. data/lib/tasks/deimos.rake +7 -0
  46. data/spec/active_record_batch_consumer_spec.rb +481 -0
  47. data/spec/active_record_consume/batch_slicer_spec.rb +42 -0
  48. data/spec/active_record_consume/schema_model_converter_spec.rb +105 -0
  49. data/spec/active_record_consumer_spec.rb +3 -11
  50. data/spec/active_record_producer_spec.rb +66 -88
  51. data/spec/batch_consumer_spec.rb +24 -7
  52. data/spec/config/configuration_spec.rb +4 -0
  53. data/spec/consumer_spec.rb +8 -8
  54. data/spec/deimos_spec.rb +57 -49
  55. data/spec/generators/active_record_generator_spec.rb +56 -0
  56. data/spec/handlers/my_batch_consumer.rb +6 -1
  57. data/spec/handlers/my_consumer.rb +6 -1
  58. data/spec/kafka_topic_info_spec.rb +39 -16
  59. data/spec/message_spec.rb +19 -0
  60. data/spec/producer_spec.rb +3 -3
  61. data/spec/rake_spec.rb +1 -1
  62. data/spec/schemas/com/my-namespace/Generated.avsc +71 -0
  63. data/spec/schemas/com/my-namespace/MySchemaCompound-key.avsc +18 -0
  64. data/spec/schemas/com/my-namespace/Wibble.avsc +43 -0
  65. data/spec/spec_helper.rb +62 -6
  66. data/spec/utils/db_poller_spec.rb +320 -0
  67. data/spec/utils/db_producer_spec.rb +84 -10
  68. data/spec/utils/deadlock_retry_spec.rb +74 -0
  69. data/spec/utils/lag_reporter_spec.rb +29 -22
  70. metadata +66 -30
  71. data/lib/deimos/base_consumer.rb +0 -104
  72. data/lib/deimos/utils/executor.rb +0 -124
  73. data/lib/deimos/utils/platform_schema_validation.rb +0 -0
  74. data/lib/deimos/utils/signal_handler.rb +0 -68
  75. data/spec/utils/executor_spec.rb +0 -53
  76. data/spec/utils/signal_handler_spec.rb +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5867eea57702a40d8e07589dc1f260e772ae6491d306c8f9829ab3841915c280
4
- data.tar.gz: 75610a9efa79b1a94d0ce31da751aea4fdc58a49b0fd8f4b86286b80c1dd7a90
3
+ metadata.gz: 335328a0ca5fb9147405485a66944ebe0d05af552ec09ec9605d76a7e7da7e9a
4
+ data.tar.gz: 438a9a91bda52be144d63867a4ae42dd1901cc7472f61232044aa934efebb464
5
5
  SHA512:
6
- metadata.gz: 738b20ca02d57e34ac171994f15ebbb905f93e0846297e476cfe06af13857c074f6420bbe84cb6d7840d96d7dc82adc6ab15298cb6bf35a4c29ed9ee6f594bc6
7
- data.tar.gz: 4c75fd4f60273b7c3e838e7325b11cf5891970adcebe0b28b23d6777261d4c33954240ecbb5b522840c5cde2549bb452505de19f9142c5efdf77170a6f8ced3b
6
+ metadata.gz: 3e01c5c9db93cb6e0f56dafa2f1b301c30b9cc11c397ca35f77b80cfe62bd9600eacb8774516ee1c81337193687944a8c7bec3cba400df6ea8b1c33af7e82c27
7
+ data.tar.gz: 9de8cea35db671c43123d096653a6423ccfcaad8a2b8e9478f787e879bd7fd50a626604b8626f79b5f8654c84130fded58385d6f75fe44e59e1bfb5a284e1096
@@ -20,6 +20,9 @@ jobs:
20
20
  # Bundle install dependencies in /tmp/
21
21
  # so Dockerfile does not copy them since
22
22
  # its base image is different than CircleCI
23
+ - run:
24
+ name: Install bundler
25
+ command: gem install bundler:2.1.4
23
26
  - run:
24
27
  name: Bundle install
25
28
  command: bundle install --path vendor/bundle --jobs=4 --retry=3
@@ -40,6 +43,9 @@ jobs:
40
43
  steps:
41
44
  - attach_workspace:
42
45
  at: ~/workspace
46
+ - run:
47
+ name: Install bundler
48
+ command: gem install bundler:2.1.4
43
49
  - run:
44
50
  name: Point bundle to vendor/bundle
45
51
  command: bundle --path vendor/bundle
@@ -50,6 +56,9 @@ jobs:
50
56
  steps:
51
57
  - attach_workspace:
52
58
  at: ~/workspace
59
+ - run:
60
+ name: Install bundler
61
+ command: gem install bundler:2.1.4
53
62
  - run:
54
63
  name: Point bundle to vendor/bundle
55
64
  command: bundle --path vendor/bundle
@@ -1,10 +1,12 @@
1
1
  require: rubocop-rspec
2
2
 
3
3
  AllCops:
4
- TargetRubyVersion: 2.3
4
+ TargetRubyVersion: 2.4
5
5
  Exclude:
6
6
  - lib/deimos/monkey_patches/*.rb
7
7
  - vendor/**/*
8
+ - Guardfile
9
+ NewCops: enable
8
10
 
9
11
  # class Plumbus
10
12
  # private
@@ -34,6 +36,12 @@ Layout/DotPosition:
34
36
  Layout/EmptyLinesAroundBlockBody:
35
37
  Enabled: false
36
38
 
39
+ Layout/LineLength:
40
+ Max: 120
41
+ Severity: refactor
42
+ Exclude:
43
+ - 'spec/**/*'
44
+
37
45
  # foo = if expression
38
46
  # 'bar'
39
47
  # end
@@ -70,30 +78,26 @@ Lint/UnusedMethodArgument:
70
78
 
71
79
  Metrics/AbcSize:
72
80
  Severity: refactor
73
- Max: 20
81
+ Max: 25
74
82
 
75
83
  Metrics/BlockLength:
76
- Severity: refactor
84
+ Enabled: false
77
85
 
78
86
  Metrics/ClassLength:
79
87
  Severity: refactor
88
+ Max: 500
80
89
 
81
90
  Metrics/CyclomaticComplexity:
82
91
  Severity: refactor
83
92
  Max: 20
84
93
 
85
- Metrics/LineLength:
86
- Max: 100
87
- Severity: refactor
88
- Exclude:
89
- - 'spec/**/*'
90
-
91
94
  Metrics/MethodLength:
92
95
  Severity: refactor
93
- Max: 30
96
+ Max: 50
94
97
 
95
98
  Metrics/ModuleLength:
96
99
  Severity: refactor
100
+ Max: 200
97
101
 
98
102
  Metrics/ParameterLists:
99
103
  Max: 5
@@ -101,6 +105,7 @@ Metrics/ParameterLists:
101
105
 
102
106
  Metrics/PerceivedComplexity:
103
107
  Severity: refactor
108
+ Max: 10
104
109
 
105
110
  # Use alias_method instead of alias
106
111
  Style/Alias:
@@ -123,12 +128,6 @@ Style/BlockDelimiters:
123
128
  # some_method(x, y, {a: 1, b: 2})
124
129
  # some_method(x, y, {a: 1, b: 2}, a: 1, b: 2)
125
130
 
126
- # good
127
- # some_method(x, y, a: 1, b: 2)
128
- # some_method(x, y, {a: 1, b: 2}, {a: 1, b: 2})
129
- Style/BracesAroundHashParameters:
130
- EnforcedStyle: context_dependent
131
-
132
131
  # Enable both this:
133
132
  # MyModule::MyClass
134
133
  # and this:
@@ -179,6 +178,13 @@ Style/GuardClause:
179
178
  Style/HashSyntax:
180
179
  EnforcedStyle: ruby19_no_mixed_keys
181
180
 
181
+ # We are still unofficially targeting Ruby 2.3
182
+ Style/HashTransformKeys:
183
+ Enabled: false
184
+
185
+ Style/HashTransformValues:
186
+ Enabled: false
187
+
182
188
  Style/IfUnlessModifier:
183
189
  Enabled: false
184
190
 
@@ -1 +1 @@
1
- 2.5.1
1
+ 2.5.3
@@ -7,6 +7,48 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## UNRELEASED
9
9
 
10
+ ## 1.8.1-beta1 - 2020-07-22
11
+
12
+ ### Fixes :wrench:
13
+ - Retry deleting messages without resending the batch if the
14
+ delete fails (fixes [#34](https://github.com/flipp-oss/deimos/issues/34))
15
+ - Delete messages in batches rather than all at once to
16
+ cut down on the chance of a deadlock.
17
+
18
+ ### Features :star:
19
+ - Add `last_processed_at` to `kafka_topic_info` to ensure
20
+ that wait metrics are accurate in cases where records
21
+ get created with an old `created_at` time (e.g. for
22
+ long-running transactions).
23
+ - Add generator for ActiveRecord models and migrations (fixes [#6](https://github.com/flipp-oss/deimos/issues/6))
24
+
25
+ ## 1.8.0-beta2 - 2020-07-08
26
+
27
+ ### Fixes :wrench:
28
+ - Fix crash with batch consumption due to not having ActiveSupport::Concern
29
+
30
+ ### Features :star:
31
+ - Add `first_offset` to the metadata sent via the batch
32
+
33
+ ## 1.8.0-beta1 - 2020-07-06
34
+ ### Features :star:
35
+ - Added `ActiveRecordConsumer` batch mode
36
+
37
+ ### Fixes :wrench:
38
+ - Lag calculation can be incorrect if no messages are being consumed.
39
+ - Fixed bug where printing messages on a MessageSizeTooLarge
40
+ error didn't work.
41
+
42
+ ### Roadmap
43
+ - Moved SignalHandler and Executor to the `sigurd` gem.
44
+
45
+ ## 1.7.0-beta1 - 2020-05-12
46
+ ### Features :star:
47
+ - Added the DB Poller feature / process.
48
+
49
+ ## 1.6.4 - 2020-05-11
50
+ - Fixed the payload logging fix for errored messages as well.
51
+
10
52
  ## 1.6.3 - 2020-05-04
11
53
  ### Fixes :wrench:
12
54
  - Fixed the payload logging fix.
@@ -1,83 +1,99 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- deimos-ruby (1.6.2)
4
+ deimos-ruby (1.8.1.pre.beta1)
5
5
  avro_turf (~> 0.11)
6
6
  phobos (~> 1.9)
7
7
  ruby-kafka (~> 0.7)
8
+ sigurd (= 0.0.1)
8
9
 
9
10
  GEM
10
11
  remote: https://rubygems.org/
11
12
  specs:
12
- actioncable (5.2.4.2)
13
- actionpack (= 5.2.4.2)
13
+ actioncable (6.0.3.2)
14
+ actionpack (= 6.0.3.2)
14
15
  nio4r (~> 2.0)
15
16
  websocket-driver (>= 0.6.1)
16
- actionmailer (5.2.4.2)
17
- actionpack (= 5.2.4.2)
18
- actionview (= 5.2.4.2)
19
- activejob (= 5.2.4.2)
17
+ actionmailbox (6.0.3.2)
18
+ actionpack (= 6.0.3.2)
19
+ activejob (= 6.0.3.2)
20
+ activerecord (= 6.0.3.2)
21
+ activestorage (= 6.0.3.2)
22
+ activesupport (= 6.0.3.2)
23
+ mail (>= 2.7.1)
24
+ actionmailer (6.0.3.2)
25
+ actionpack (= 6.0.3.2)
26
+ actionview (= 6.0.3.2)
27
+ activejob (= 6.0.3.2)
20
28
  mail (~> 2.5, >= 2.5.4)
21
29
  rails-dom-testing (~> 2.0)
22
- actionpack (5.2.4.2)
23
- actionview (= 5.2.4.2)
24
- activesupport (= 5.2.4.2)
30
+ actionpack (6.0.3.2)
31
+ actionview (= 6.0.3.2)
32
+ activesupport (= 6.0.3.2)
25
33
  rack (~> 2.0, >= 2.0.8)
26
34
  rack-test (>= 0.6.3)
27
35
  rails-dom-testing (~> 2.0)
28
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
29
- actionview (5.2.4.2)
30
- activesupport (= 5.2.4.2)
36
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
37
+ actiontext (6.0.3.2)
38
+ actionpack (= 6.0.3.2)
39
+ activerecord (= 6.0.3.2)
40
+ activestorage (= 6.0.3.2)
41
+ activesupport (= 6.0.3.2)
42
+ nokogiri (>= 1.8.5)
43
+ actionview (6.0.3.2)
44
+ activesupport (= 6.0.3.2)
31
45
  builder (~> 3.1)
32
46
  erubi (~> 1.4)
33
47
  rails-dom-testing (~> 2.0)
34
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
35
- activejob (5.2.4.2)
36
- activesupport (= 5.2.4.2)
48
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
49
+ activejob (6.0.3.2)
50
+ activesupport (= 6.0.3.2)
37
51
  globalid (>= 0.3.6)
38
- activemodel (5.2.4.2)
39
- activesupport (= 5.2.4.2)
40
- activerecord (5.2.4.2)
41
- activemodel (= 5.2.4.2)
42
- activesupport (= 5.2.4.2)
43
- arel (>= 9.0)
44
- activerecord-import (1.0.3)
52
+ activemodel (6.0.3.2)
53
+ activesupport (= 6.0.3.2)
54
+ activerecord (6.0.3.2)
55
+ activemodel (= 6.0.3.2)
56
+ activesupport (= 6.0.3.2)
57
+ activerecord-import (1.0.5)
45
58
  activerecord (>= 3.2)
46
- activestorage (5.2.4.2)
47
- actionpack (= 5.2.4.2)
48
- activerecord (= 5.2.4.2)
59
+ activestorage (6.0.3.2)
60
+ actionpack (= 6.0.3.2)
61
+ activejob (= 6.0.3.2)
62
+ activerecord (= 6.0.3.2)
49
63
  marcel (~> 0.3.1)
50
- activesupport (5.2.4.2)
64
+ activesupport (6.0.3.2)
51
65
  concurrent-ruby (~> 1.0, >= 1.0.2)
52
66
  i18n (>= 0.7, < 2)
53
67
  minitest (~> 5.1)
54
68
  tzinfo (~> 1.1)
55
- arel (9.0.0)
56
- ast (2.4.0)
57
- avro (1.9.1)
69
+ zeitwerk (~> 2.2, >= 2.2.2)
70
+ ast (2.4.1)
71
+ avro (1.9.2)
58
72
  multi_json
59
73
  avro_turf (0.11.0)
60
74
  avro (>= 1.7.7, < 1.10)
61
75
  excon (~> 0.45)
62
76
  builder (3.2.4)
63
- coderay (1.1.2)
64
- concurrent-ruby (1.1.5)
65
- concurrent-ruby-ext (1.1.5)
66
- concurrent-ruby (= 1.1.5)
77
+ coderay (1.1.3)
78
+ concurrent-ruby (1.1.6)
79
+ concurrent-ruby-ext (1.1.6)
80
+ concurrent-ruby (= 1.1.6)
67
81
  crass (1.0.6)
68
- ddtrace (0.30.0)
82
+ database_cleaner (1.8.5)
83
+ ddtrace (0.37.0)
69
84
  msgpack
70
- diff-lcs (1.3)
71
- digest-crc (0.5.1)
72
- dogstatsd-ruby (4.5.0)
85
+ diff-lcs (1.4.4)
86
+ digest-crc (0.6.1)
87
+ rake (~> 13.0)
88
+ dogstatsd-ruby (4.8.1)
73
89
  erubi (1.9.0)
74
- excon (0.73.0)
90
+ excon (0.75.0)
75
91
  exponential-backoff (0.0.4)
76
- ffi (1.11.3)
92
+ ffi (1.13.1)
77
93
  formatador (0.2.5)
78
94
  globalid (0.4.2)
79
95
  activesupport (>= 4.2.0)
80
- guard (2.16.1)
96
+ guard (2.16.2)
81
97
  formatador (>= 0.2.4)
82
98
  listen (>= 2.7, < 4.0)
83
99
  lumberjack (>= 1.0.12, < 2.0)
@@ -94,43 +110,42 @@ GEM
94
110
  guard-rubocop (1.3.0)
95
111
  guard (~> 2.0)
96
112
  rubocop (~> 0.20)
97
- i18n (1.8.2)
113
+ i18n (1.8.4)
98
114
  concurrent-ruby (~> 1.0)
99
- jaro_winkler (1.5.4)
100
115
  listen (3.2.1)
101
116
  rb-fsevent (~> 0.10, >= 0.10.3)
102
117
  rb-inotify (~> 0.9, >= 0.9.10)
103
118
  little-plugger (1.1.4)
104
- logging (2.2.2)
119
+ logging (2.3.0)
105
120
  little-plugger (~> 1.1)
106
- multi_json (~> 1.10)
107
- loofah (2.5.0)
121
+ multi_json (~> 1.14)
122
+ loofah (2.6.0)
108
123
  crass (~> 1.0.2)
109
124
  nokogiri (>= 1.5.9)
110
- lumberjack (1.0.13)
125
+ lumberjack (1.2.6)
111
126
  mail (2.7.1)
112
127
  mini_mime (>= 0.1.1)
113
128
  marcel (0.3.3)
114
129
  mimemagic (~> 0.3.2)
115
- method_source (0.9.2)
116
- mimemagic (0.3.4)
130
+ method_source (1.0.0)
131
+ mimemagic (0.3.5)
117
132
  mini_mime (1.0.2)
118
133
  mini_portile2 (2.4.0)
119
- minitest (5.14.0)
120
- msgpack (1.3.1)
121
- multi_json (1.14.1)
134
+ minitest (5.14.1)
135
+ msgpack (1.3.3)
136
+ multi_json (1.15.0)
122
137
  mysql2 (0.5.3)
123
138
  nenv (0.3.0)
124
139
  nio4r (2.5.2)
125
- nokogiri (1.10.9)
140
+ nokogiri (1.10.10)
126
141
  mini_portile2 (~> 2.4.0)
127
142
  notiffany (0.1.3)
128
143
  nenv (~> 0.1)
129
144
  shellany (~> 0.0)
130
- parallel (1.19.1)
131
- parser (2.6.5.0)
132
- ast (~> 2.4.0)
133
- pg (1.1.4)
145
+ parallel (1.19.2)
146
+ parser (2.7.1.4)
147
+ ast (~> 2.4.1)
148
+ pg (1.2.3)
134
149
  phobos (1.9.0)
135
150
  activesupport (>= 3.0.0)
136
151
  concurrent-ruby (>= 1.0.2)
@@ -139,94 +154,106 @@ GEM
139
154
  logging
140
155
  ruby-kafka
141
156
  thor
142
- pry (0.12.2)
143
- coderay (~> 1.1.0)
144
- method_source (~> 0.9.0)
145
- rack (2.2.2)
157
+ pry (0.13.1)
158
+ coderay (~> 1.1)
159
+ method_source (~> 1.0)
160
+ rack (2.2.3)
146
161
  rack-test (1.1.0)
147
162
  rack (>= 1.0, < 3)
148
- rails (5.2.4.2)
149
- actioncable (= 5.2.4.2)
150
- actionmailer (= 5.2.4.2)
151
- actionpack (= 5.2.4.2)
152
- actionview (= 5.2.4.2)
153
- activejob (= 5.2.4.2)
154
- activemodel (= 5.2.4.2)
155
- activerecord (= 5.2.4.2)
156
- activestorage (= 5.2.4.2)
157
- activesupport (= 5.2.4.2)
163
+ rails (6.0.3.2)
164
+ actioncable (= 6.0.3.2)
165
+ actionmailbox (= 6.0.3.2)
166
+ actionmailer (= 6.0.3.2)
167
+ actionpack (= 6.0.3.2)
168
+ actiontext (= 6.0.3.2)
169
+ actionview (= 6.0.3.2)
170
+ activejob (= 6.0.3.2)
171
+ activemodel (= 6.0.3.2)
172
+ activerecord (= 6.0.3.2)
173
+ activestorage (= 6.0.3.2)
174
+ activesupport (= 6.0.3.2)
158
175
  bundler (>= 1.3.0)
159
- railties (= 5.2.4.2)
176
+ railties (= 6.0.3.2)
160
177
  sprockets-rails (>= 2.0.0)
161
178
  rails-dom-testing (2.0.3)
162
179
  activesupport (>= 4.2.0)
163
180
  nokogiri (>= 1.6)
164
181
  rails-html-sanitizer (1.3.0)
165
182
  loofah (~> 2.3)
166
- railties (5.2.4.2)
167
- actionpack (= 5.2.4.2)
168
- activesupport (= 5.2.4.2)
183
+ railties (6.0.3.2)
184
+ actionpack (= 6.0.3.2)
185
+ activesupport (= 6.0.3.2)
169
186
  method_source
170
187
  rake (>= 0.8.7)
171
- thor (>= 0.19.0, < 2.0)
188
+ thor (>= 0.20.3, < 2.0)
172
189
  rainbow (3.0.0)
173
190
  rake (13.0.1)
174
- rb-fsevent (0.10.3)
175
- rb-inotify (0.10.0)
191
+ rb-fsevent (0.10.4)
192
+ rb-inotify (0.10.1)
176
193
  ffi (~> 1.0)
194
+ regexp_parser (1.7.1)
195
+ rexml (3.2.4)
177
196
  rspec (3.9.0)
178
197
  rspec-core (~> 3.9.0)
179
198
  rspec-expectations (~> 3.9.0)
180
199
  rspec-mocks (~> 3.9.0)
181
- rspec-core (3.9.0)
182
- rspec-support (~> 3.9.0)
183
- rspec-expectations (3.9.0)
200
+ rspec-core (3.9.2)
201
+ rspec-support (~> 3.9.3)
202
+ rspec-expectations (3.9.2)
184
203
  diff-lcs (>= 1.2.0, < 2.0)
185
204
  rspec-support (~> 3.9.0)
186
- rspec-mocks (3.9.0)
205
+ rspec-mocks (3.9.1)
187
206
  diff-lcs (>= 1.2.0, < 2.0)
188
207
  rspec-support (~> 3.9.0)
189
- rspec-support (3.9.0)
208
+ rspec-support (3.9.3)
190
209
  rspec_junit_formatter (0.4.1)
191
210
  rspec-core (>= 2, < 4, != 2.12.0)
192
- rubocop (0.77.0)
193
- jaro_winkler (~> 1.5.1)
211
+ rubocop (0.88.0)
194
212
  parallel (~> 1.10)
195
- parser (>= 2.6)
213
+ parser (>= 2.7.1.1)
196
214
  rainbow (>= 2.2.2, < 4.0)
215
+ regexp_parser (>= 1.7)
216
+ rexml
217
+ rubocop-ast (>= 0.1.0, < 1.0)
197
218
  ruby-progressbar (~> 1.7)
198
- unicode-display_width (>= 1.4.0, < 1.7)
199
- rubocop-rspec (1.37.1)
200
- rubocop (>= 0.68.1)
219
+ unicode-display_width (>= 1.4.0, < 2.0)
220
+ rubocop-ast (0.2.0)
221
+ parser (>= 2.7.0.1)
222
+ rubocop-rspec (1.42.0)
223
+ rubocop (>= 0.87.0)
201
224
  ruby-kafka (0.7.10)
202
225
  digest-crc
203
226
  ruby-progressbar (1.10.1)
204
227
  shellany (0.0.1)
205
- sprockets (4.0.0)
228
+ sigurd (0.0.1)
229
+ concurrent-ruby (~> 1)
230
+ exponential-backoff
231
+ sprockets (4.0.2)
206
232
  concurrent-ruby (~> 1.0)
207
233
  rack (> 1, < 3)
208
234
  sprockets-rails (3.2.1)
209
235
  actionpack (>= 4.0)
210
236
  activesupport (>= 4.0)
211
237
  sprockets (>= 3.0.0)
212
- sqlite3 (1.4.1)
238
+ sqlite3 (1.4.2)
213
239
  thor (1.0.1)
214
240
  thread_safe (0.3.6)
215
241
  tzinfo (1.2.7)
216
242
  thread_safe (~> 0.1)
217
- unicode-display_width (1.6.0)
218
- websocket-driver (0.7.1)
243
+ unicode-display_width (1.7.0)
244
+ websocket-driver (0.7.3)
219
245
  websocket-extensions (>= 0.1.0)
220
- websocket-extensions (0.1.4)
246
+ websocket-extensions (0.1.5)
247
+ zeitwerk (2.4.0)
221
248
 
222
249
  PLATFORMS
223
250
  ruby
224
251
 
225
252
  DEPENDENCIES
226
- activerecord (~> 5.2)
253
+ activerecord (~> 6)
227
254
  activerecord-import
228
255
  avro (~> 1.9)
229
- bundler (~> 1)
256
+ database_cleaner (~> 1.7)
230
257
  ddtrace (~> 0.11)
231
258
  deimos-ruby!
232
259
  dogstatsd-ruby (~> 4.2)
@@ -235,7 +262,7 @@ DEPENDENCIES
235
262
  guard-rubocop (~> 1)
236
263
  mysql2 (~> 0.5)
237
264
  pg (~> 1.1)
238
- rails (~> 5.2, >= 5.2.4.2)
265
+ rails (~> 6)
239
266
  rake (~> 13)
240
267
  rspec (~> 3)
241
268
  rspec_junit_formatter (~> 0.3)
@@ -244,4 +271,4 @@ DEPENDENCIES
244
271
  sqlite3 (~> 1.3)
245
272
 
246
273
  BUNDLED WITH
247
- 1.17.3
274
+ 2.1.4