deimos-ruby 1.20.1 → 1.22.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md.orig DELETED
@@ -1,517 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## UNRELEASED
9
-
10
- <<<<<<< HEAD
11
- - Feature: Limit amount of transactions in a single database call with `max_db_batch_size`
12
- =======
13
- # 1.19.3 - 2023-03-22
14
-
15
- - Fix: Allow `have_sent` matcher to work with schema classes.
16
- >>>>>>> have-sent-fix
17
-
18
- # 1.19.2 - 2023-03-20
19
-
20
- - Fix for saving associations where the primary key is not `id`.
21
-
22
- # 1.19.1 - 2023-03-17
23
-
24
- - Fix for `rails g deimos:bulk_import_id` generator.
25
-
26
- # 1.19.0 - 2023-02-21
27
-
28
- - Feature: When consuming data in batch mode, this adds ability to save data to multiple tables with `association_list`.
29
- - Fix bug with the `disable_producers` method where producers may remain disabled after the block
30
- is done processing if an error occurs inside it.
31
-
32
- # 1.18.2 - 2022-11-14
33
-
34
- - Fixes bug related to wait between runs when no records are fetched by updating poll_info
35
-
36
- # 1.18.1 - 2022-11-01
37
-
38
- - Fix the primary_key detection way in `state_based` mode
39
-
40
- # 1.18.0 - 2022-11-01
41
-
42
- ### Features :star:
43
-
44
- - Add the `state_based` mode for DB pollers.
45
-
46
- ### Fixes :wrench:
47
- - Fix the mock schema backend's `encode_key` method so it doesn't crash when used in application code.
48
-
49
- # 1.17.1 - 2022-10-20
50
-
51
- - Fix the log message for publishing messages so it uses the topic of the actual message instead of
52
- the default for the producer.
53
- - Use public sord gem instead of private fork.
54
-
55
- # 1.17.0 - 2022-10-19
56
- - Fix the linting step in the CI
57
- - CHANGE: Add retries to DB poller and bypass "bad batches".
58
- - Add tracing spans to DB poller production.
59
-
60
- # 1.16.4 - 2022-09-09
61
-
62
- - Now generates RBS types.
63
- - Use `allocate` instead of `new` in `tombstone` to avoid issues with required fields in `initialize`.
64
-
65
- # 1.16.3 - 2022-09-08
66
-
67
- - Add the `tombstone` method to schema classes.
68
-
69
- # 1.16.2 - 2022-09-07
70
-
71
- - Added support of post_process method in ActiveRecordProducer
72
-
73
- # 1.16.1 - 2022-08-03
74
-
75
- - Fix issues with `enum` schema classes (e.g. equality not working, `to_s` not working)
76
- - Changed assumption in the base schema class that it was a record (e.g. defining `to_h` instead of `as_json`). Moved record functionality to the record base class.
77
- - Added the `active_span` and `set_tag` methods to the tracing classes.
78
- - Added span tags for fields in SchemaControllerMixin.
79
- - Updated SchemaControllerMixin so it works with generated schema classes.
80
- - Fixed bug with previous release where the filename and constant names for `generate_namespace_folders` did not always match.
81
-
82
- # 1.15.0 - 2022-07-20
83
-
84
- - Update to `sigurd` 0.1.0 - DB producer should now exit when receiving a `SIGTERM` instead of throwing a `SignalException`
85
-
86
- # 1.14.6 - 2022-06-21
87
-
88
- - Add `generate_namespace_folders` to configuration; this will automatically generate subfolders to the `schemas` folder so that you can have different schemas with the same name but different namespaces generate separate classes.
89
-
90
- # 1.14.5 - 2022-06-21
91
-
92
- - Fix crash with the tracer when error happens in decoding a message during batch consuming
93
- - Generate schema classes for all schemas, even without a consumer/producer set
94
-
95
- # 1.14.4 - 2022-06-18
96
-
97
- - Fix import in ActiveRecordConsumer on mysql
98
-
99
- # 1.14.3 - 2022-06-17
100
-
101
- - Fix issue with ActiveRecordConsumer double-decoding keys in batch mode.
102
-
103
- # 1.14.2 - 2022-05-26
104
-
105
- - Fix crash with `test_consume_message` when passing in an instance of a schema class instead of a hash.
106
-
107
- # 1.14.1 - 2022-05-25
108
-
109
- - Fix: When using key schemas, ActiveRecordConsumers were not finding the record by default.
110
-
111
- # 1.14.0 - 2022-05-16
112
-
113
- - **Breaking Change**: Nest sub-schemas by default into their parent schemas when generating classes.
114
- - Add the `nest_child_schemas` option to essentially bring back the previous behavior in terms of code use (the actual classes will be separated out into different files).
115
-
116
- # 1.13.3 - 2022-05-10
117
-
118
- - Some cleanup on the active_record generator
119
- - Fix crash with `test_consume_message` when using schema classes
120
- - Add `[]=` and `merge` methods on the base schema class
121
-
122
- # 1.13.2 - 2022-04-07
123
-
124
- - Fix an issue with generating schema classes for schemas containing an enum with default value
125
-
126
- # 1.13.1 - 2022-04-06
127
-
128
- - Fix circular reference schema generation
129
-
130
- # 1.13.0 - 2022-03-30
131
-
132
- - Pass the Deimos logger to `AvroTurf::Messaging` for consistent logging
133
- - Fix an issue with nullable enums not being included in the auto-generated schema class
134
-
135
- # 1.12.6 - 2022-03-14
136
-
137
- - Fix NameError when using Datadog Metrics
138
- - Fix unwanted STDOUT output when loading the main `Deimos` module
139
-
140
- # 1.12.5 - 2022-03-09
141
-
142
- - Allow use of new avro_turf versions where child schemas are not listed with the top level schemas
143
- - Add support for SASL authentication with brokers
144
- - Add support for Basic auth with Schema Registry
145
-
146
- # 1.12.4 - 2022-01-13
147
-
148
- - Fix bug where schema controller mixin was using the schema name to register and not the namespaced schema name
149
-
150
- # 1.12.3 - 2021-12-13
151
-
152
- - Fix bug with previous release
153
-
154
- # 1.12.2 - 2021-12-10
155
-
156
- ### Features :star:
157
-
158
- - Added `Deimos.encode` and `Deimos.decode` for non-topic-related encoding and decoding.
159
-
160
- # 1.12.1 - 2021-11-02
161
-
162
- - ### Fixes :wrench:
163
- - Fixed issue where Schema Class Consumer/Producer are using `Deimos::` instead of `Schema::` for instances of classes.
164
-
165
- # 1.12.0 - 2021-11-01
166
-
167
- ### Features :star:
168
-
169
- - Generate Schema classes from Avro Schemas
170
- - Use Schema Classes in your consumer and producer
171
-
172
- ## 1.11.0 - 2021-08-27
173
-
174
- - ### Fixes :wrench:
175
- - Fixed issue where ActiveRecord batch consumption could fail when decoding keys.
176
-
177
- - ### Roadmap :car:
178
- - TestHelper does not automatically reset Deimos config before each test. [#120](https://github.com/flipp-oss/deimos/pull/120).
179
- **Please note that this is a breaking change**
180
-
181
-
182
- ## 1.10.2 - 2021-07-20
183
-
184
- - ### Fixes :wrench:
185
-
186
- - Fixed issue where producers would stay in an error state after e.g. authorization failures for one topic that wouldn't apply to other topics.
187
-
188
- ## 1.10.1 - 2021-06-21
189
-
190
- - ### Fixes :wrench:
191
-
192
- - Fixed crash when trying to decode a nil payload (e.g. during instrumentation of `send_produce_error`.)
193
-
194
- ## 1.10.0 - 2021-03-22
195
-
196
- - ### Roadmap :car:
197
-
198
- - Extracted the configuration piece into a separate gem, [fig_tree](https://www.github.com/flipp-oss/fig_tree).
199
- - Added a `save_record` method to ActiveRecordConsumer in case calling code wants to work with the record before saving.
200
-
201
- - ### Fixes :wrench:
202
-
203
- - Fixed a regression where the default values for consumer / Phobos listener configs were not correct (they were all nil). This is technically a breaking change, but it puts the configs back the way they were at version 1.4 and matches the documentation.
204
-
205
- ## 1.9.2 - 2021-01-29
206
-
207
- - ### Fixes :wrench:
208
-
209
- - Fix for `uninitialized constant ActiveSupport::Autoload` in certain circumstances
210
- - Removed unnecessary monkey patch which was crashing on newer versions of ruby-kafka
211
-
212
- ## 1.9.0 - 2021-01-28
213
-
214
- - ### Roadmap :car:
215
-
216
- - Bumped the version of ruby-kafka to latest
217
-
218
- - ### Fixes :wrench:
219
-
220
- - Prevents DB Poller from reconnecting to DB if there is an open transaction
221
- - Replaces `before` by `prepend_before` for more consistent test setups.
222
- - Adds validation in the `kafka_producers` method (fixes [#90](https://github.com/flipp-oss/deimos/issues/90))
223
-
224
- ## 1.8.7 - 2021-01-14
225
-
226
- - ### Roadmap :car:
227
- - Update Phobos version to allow version 1.9 or 2.x.
228
-
229
- ## 1.8.6 - 2021-01-14
230
-
231
- - ### Fixes :wrench:
232
- - Fix for configuration bug with Ruby 3.0 (** instead of passing hash)
233
-
234
- ## 1.8.5 - 2021-01-13
235
-
236
- - ### Fixes :wrench:
237
- - Fixes for Rails 6.1 (remove usage of `update_attributes!`)
238
-
239
- ## 1.8.4 - 2020-12-02
240
-
241
- ### Features :star:
242
- - Add overridable "process_message?" method to ActiveRecordConsumer to allow for skipping of saving/updating records
243
-
244
- ### Fixes :wrench:
245
-
246
- - Do not apply type coercion to `timestamp-millis` and `timestamp-micros` logical types (fixes [#97](https://github.com/flipp-oss/deimos/issues/97))
247
-
248
- ## 1.8.3 - 2020-11-18
249
-
250
- ### Fixes :wrench:
251
- - Do not resend already sent messages when splitting up batches
252
- (fixes [#24](https://github.com/flipp-oss/deimos/issues/24))
253
- - KafkaSource crashing on bulk-imports if import hooks are disabled
254
- (fixes [#73](https://github.com/flipp-oss/deimos/issues/73))
255
- - #96 Use string-safe encoding for partition keys
256
- - Retry on offset seek failures in inline consumer
257
- (fixes [#5](Inline consumer should use retries when seeking))
258
-
259
- ## 1.8.2 - 2020-09-25
260
-
261
- ### Features :star:
262
- - Add "disabled" config field to consumers to allow disabling
263
- individual consumers without having to comment out their
264
- entries and possibly affecting unit tests.
265
-
266
- ### Fixes :wrench:
267
- - Prepend topic_prefix while encoding messages
268
- (fixes [#37](https://github.com/flipp-oss/deimos/issues/37))
269
- - Raise error if producing without a topic
270
- (fixes [#50](https://github.com/flipp-oss/deimos/issues/50))
271
- - Don't try to load producers/consumers when running rake tasks involving webpacker or assets
272
-
273
- ## 1.8.2-beta2 - 2020-09-15
274
-
275
- ### Features :star:
276
-
277
- - Add details on using schema backend directly in README.
278
- - Default to the provided schema if topic is not provided when
279
- encoding to `AvroSchemaRegistry`.
280
- - Add mapping syntax for the `schema` call in `SchemaControllerMixin`.
281
-
282
- ## 1.8.2-beta1 - 2020-09-09
283
-
284
- ### Features :star:
285
-
286
- - Added the ability to specify the topic for `publish`
287
- and `publish_list` in a producer
288
-
289
- ## 1.8.1-beta9 - 2020-08-27
290
-
291
- ### Fixes :wrench:
292
- - Moved the TestHelpers hook to `before(:suite)` to allow for
293
- overriding e.g. in integration tests.
294
-
295
- ## 1.8.1-beta7 - 2020-08-25
296
-
297
- ### Fixes :wrench:
298
- - Fix for crash when sending pending metrics with DB producer.
299
- - Fix for compacting messages if all the keys are already unique
300
- (fixes [#75](https://github.com/flipp-oss/deimos/issues/75))
301
-
302
- ## 1.8.1-beta6 - 2020-08-13
303
-
304
- ### Fixes :wrench:
305
-
306
- - Fix for consuming nil payloads with Ruby 2.3.
307
-
308
- ## 1.8.1-beta5 - 2020-08-13
309
-
310
- ### Fixes :wrench:
311
- - Fix regression bug which introduces backwards incompatibility
312
- with ActiveRecordProducer's `record_attributes` method.
313
-
314
- ## 1.8.1-beta4 - 2020-08-12
315
-
316
- ### Fixes :wrench:
317
- - Fix regression bug where arrays were not being encoded
318
-
319
- ## 1.8.1-beta3 - 2020-08-05
320
-
321
- ### Fixes :wrench:
322
- - Simplify decoding messages and handle producer not found
323
- - Consolidate types in sub-records recursively
324
- (fixes [#72](https://github.com/flipp-oss/deimos/issues/72))
325
-
326
- ## 1.8.1-beta2 - 2020-07-28
327
-
328
- ### Features :star:
329
- - Add `SchemaControllerMixin` to encode and decode schema-encoded
330
- payloads in Rails controllers.
331
-
332
- ## 1.8.1-beta1 - 2020-07-22
333
-
334
- ### Fixes :wrench:
335
- - Retry deleting messages without resending the batch if the
336
- delete fails (fixes [#34](https://github.com/flipp-oss/deimos/issues/34))
337
- - Delete messages in batches rather than all at once to
338
- cut down on the chance of a deadlock.
339
-
340
- ### Features :star:
341
- - Add `last_processed_at` to `kafka_topic_info` to ensure
342
- that wait metrics are accurate in cases where records
343
- get created with an old `created_at` time (e.g. for
344
- long-running transactions).
345
- - Add generator for ActiveRecord models and migrations (fixes [#6](https://github.com/flipp-oss/deimos/issues/6))
346
-
347
- ## 1.8.0-beta2 - 2020-07-08
348
-
349
- ### Fixes :wrench:
350
- - Fix crash with batch consumption due to not having ActiveSupport::Concern
351
-
352
- ### Features :star:
353
- - Add `first_offset` to the metadata sent via the batch
354
-
355
- ## 1.8.0-beta1 - 2020-07-06
356
- ### Features :star:
357
- - Added `ActiveRecordConsumer` batch mode
358
-
359
- ### Fixes :wrench:
360
- - Fixes `send_produce_error` to decode `failed_messages` with built-in decoder.
361
- - Lag calculation can be incorrect if no messages are being consumed.
362
- - Fixed bug where printing messages on a MessageSizeTooLarge
363
- error didn't work.
364
-
365
- ### Roadmap
366
- - Moved SignalHandler and Executor to the `sigurd` gem.
367
-
368
- ## 1.7.0-beta1 - 2020-05-12
369
- ### Features :star:
370
- - Added the DB Poller feature / process.
371
-
372
- ## 1.6.4 - 2020-05-11
373
- - Fixed the payload logging fix for errored messages as well.
374
-
375
- ## 1.6.3 - 2020-05-04
376
- ### Fixes :wrench:
377
- - Fixed the payload logging fix.
378
-
379
- ## 1.6.2 - 2020-05-04
380
- ### Fixes :wrench:
381
- - When saving records via `ActiveRecordConsumer`, update `updated_at` to today's time
382
- even if nothing else was saved.
383
- - When logging payloads and metadata, decode them first.
384
- - Fixes bug in `KafkaSource` that crashes when importing a mix of existing and new records with the `:on_duplicate_key_update` option.
385
-
386
- ## [1.6.1] - 2020-04-20
387
- ### Fixes :wrench:
388
- - Re-consuming a message after crashing would try to re-decode message keys.
389
-
390
- # [1.6.0] - 2020-03-05
391
- ### Roadmap :car:
392
- - Removed `was_message_sent?` method from `TestHelpers`.
393
-
394
- # [1.6.0-beta1] - 2020-02-05
395
- ### Roadmap :car:
396
- - Updated dependency for Phobos to 1.9.0-beta3. This ensures compatibility with
397
- Phobos 2.0.
398
- ### Fixes :wrench:
399
- - Fixed RSpec warning when using `test_consume_invalid_message`.
400
-
401
- # [1.5.0-beta2] - 2020-01-17
402
- ### Roadmap :car:
403
- - Added schema backends, which should simplify Avro encoding and make it
404
- more flexible for unit tests and local development.
405
- ### Features :star:
406
- - Add `:test` producer backend which replaces the existing TestHelpers
407
- functionality of writing messages to an in-memory hash.
408
-
409
- # [1.4.0-beta7] - 2019-12-16
410
- ### Fixes :wrench:
411
- - Clone loggers when assigning to multiple levels.
412
-
413
- # [1.4.0-beta6] - 2019-12-16
414
- ### Features :star:
415
- - Added default for max_bytes_per_partition.
416
-
417
- # [1.4.0-beta4] - 2019-11-26
418
- ### Features :star:
419
- - Added `define_settings` to define settings without invoking callbacks.
420
-
421
- # [1.4.0-beta2] - 2019-11-22
422
- ### Fixes :wrench:
423
- - Settings with default_proc were being called immediately
424
- instead of being lazy-evaluated.
425
-
426
- # [1.4.0-beta1] - 2019-11-22
427
- ### Roadmap :car:
428
- - Complete revamp of configuration method.
429
-
430
- # [1.3.0-beta5] - 2020-01-14
431
- ### Features :star:
432
- - Added `db_producer.insert` and `db_producer.process` metrics.
433
-
434
- # [1.3.0-beta4] - 2019-12-02
435
- ### Fixes :wrench:
436
- - Fixed bug where by running `rake deimos:start` without
437
- specifying a producer backend would crash.
438
-
439
- # [1.3.0-beta3] - 2019-11-26
440
- ### Fixes :wrench:
441
- - Fixed bug in TestHelpers where key_decoder was not stubbed out.
442
-
443
- # [1.3.0-beta2] - 2019-11-22
444
- ### Fixes :wrench:
445
- - Fixed bug where consumers would require a key config in all cases
446
- even though it's optional if they don't use keys.
447
-
448
- # [1.3.0-beta1] - 2019-11-21
449
- ### Features :star:
450
- - Added `fetch_record` and `assign_key` methods to ActiveRecordConsumer.
451
-
452
- # [1.2.0-beta1] - 2019-09-12
453
- ### Features :star:
454
- - Added `fatal_error` to both global config and consumer classes.
455
- - Changed `pending_db_messages_max_wait` metric to send per topic.
456
- - Added config to compact messages in the DB producer.
457
- - Added config to log messages in the DB producer.
458
- - Added config to provide a separate logger to the DB producer.
459
-
460
- # [1.1.0-beta2] - 2019-09-11
461
- ### Fixes :wrench:
462
- - Fixed bug where ActiveRecordConsumer was not using `unscoped` to update
463
- via primary key and causing duplicate record errors.
464
-
465
- # [1.1.0-beta1] - 2019-09-10
466
- ### Features :star:
467
- - Added BatchConsumer.
468
-
469
- ## [1.0.0] - 2019-09-03
470
- ### Roadmap :car:
471
- - Official release of Deimos 1.0!
472
-
473
- ## [1.0.0-beta26] - 2019-08-29
474
- - Recover from Kafka::MessageSizeTooLarge in the DB producer.
475
- - Shut down sync producers correctly when persistent_connections is true.
476
- - Notify when messages fail to produce in the DB producer.
477
- - Delete messages on failure and rely on notification.
478
-
479
- ## [1.0.0-beta25] - 2019-08-28
480
- - Fix bug where crashing would cause producers to stay disabled
481
-
482
- ## [1.0.0-beta24] - 2019-08-26
483
- - Reconnect DB backend if database goes away.
484
- - Sleep only 5 seconds between attempts instead of using exponential backoff.
485
- - Fix for null payload being Avro-encoded.
486
-
487
- ## [1.0.0-beta23] - 2019-08-22
488
- - Fix bug where nil payloads were not being saved to the DB.
489
- - Fix DB producer rake task looking at THREADS env var instead of THREAD_COUNT.
490
- - Debug messages in the DB producer if debug logs are turned on.
491
- - Changed logger in specs to info.
492
-
493
- ## [1.0.0-beta22] - 2019-08-09
494
- - Add `pending_db_messages_max_wait` metric for the DB producer.
495
- - Fix mock metrics to allow optional option hashes.
496
-
497
- ## [1.0.0-beta21] - 2019-08-08
498
- - Handle Phobos `persistent_connections` setting in handling buffer overflows
499
-
500
- ## [1.0.0-beta20] - 2019-08-07
501
- - Catch buffer overflows when producing via the DB producer and split the
502
- batch up.
503
-
504
- ## [1.0.0-beta19] - 2019-08-06
505
- - Fix for DB producer crashing on error in Rails 3.
506
-
507
- ## [1.0.0-beta18] - 2019-08-02
508
- - Fixed crash when sending metrics in a couple of places.
509
-
510
- ## [1.0.0-beta17] - 2019-07-31
511
- - Added `rails deimos:db_producer` rake task.
512
- - Fixed the DB producer so it runs inline instead of on a separate thread.
513
- Calling code should run it on a thread manually if that is the desired
514
- behavior.
515
-
516
- ## [1.0.0-beta15] - 2019-07-08
517
- - Initial release.