karafka 2.5.1 → 2.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci_linux_ubuntu_x86_64_gnu.yml +21 -29
- data/.github/workflows/ci_macos_arm64.yml +1 -1
- data/.github/workflows/push.yml +2 -2
- data/.github/workflows/trigger-wiki-refresh.yml +1 -1
- data/.ruby-version +1 -1
- data/.yard-lint.yml +174 -0
- data/CHANGELOG.md +20 -4
- data/Gemfile +1 -2
- data/Gemfile.lock +45 -41
- data/bin/integrations +2 -1
- data/bin/rspecs +4 -0
- data/config/locales/errors.yml +6 -4
- data/config/locales/pro_errors.yml +5 -4
- data/docker-compose.yml +1 -1
- data/examples/payloads/json/sample_set_02/download.json +191 -0
- data/examples/payloads/json/sample_set_03/event_type_1.json +18 -0
- data/examples/payloads/json/sample_set_03/event_type_2.json +263 -0
- data/examples/payloads/json/sample_set_03/event_type_3.json +41 -0
- data/karafka.gemspec +3 -3
- data/lib/active_job/queue_adapters/karafka_adapter.rb +3 -3
- data/lib/karafka/active_job/consumer.rb +7 -3
- data/lib/karafka/active_job/current_attributes/job_wrapper.rb +45 -0
- data/lib/karafka/active_job/current_attributes/loading.rb +1 -1
- data/lib/karafka/active_job/current_attributes/persistence.rb +19 -7
- data/lib/karafka/active_job/current_attributes.rb +3 -2
- data/lib/karafka/active_job/deserializer.rb +61 -0
- data/lib/karafka/active_job/dispatcher.rb +34 -14
- data/lib/karafka/active_job/job_options_contract.rb +2 -4
- data/lib/karafka/admin/acl.rb +8 -4
- data/lib/karafka/admin/configs/config.rb +6 -4
- data/lib/karafka/admin/configs/resource.rb +7 -1
- data/lib/karafka/admin/consumer_groups.rb +80 -12
- data/lib/karafka/admin/topics.rb +43 -9
- data/lib/karafka/admin.rb +23 -14
- data/lib/karafka/app.rb +3 -3
- data/lib/karafka/base_consumer.rb +6 -6
- data/lib/karafka/cli/base.rb +2 -2
- data/lib/karafka/cli/console.rb +1 -1
- data/lib/karafka/cli/contracts/server.rb +3 -5
- data/lib/karafka/cli/help.rb +1 -1
- data/lib/karafka/cli/install.rb +3 -2
- data/lib/karafka/cli/server.rb +1 -1
- data/lib/karafka/cli/swarm.rb +1 -1
- data/lib/karafka/cli/topics/align.rb +1 -1
- data/lib/karafka/cli/topics/repartition.rb +2 -2
- data/lib/karafka/connection/client.rb +30 -19
- data/lib/karafka/connection/listeners_batch.rb +2 -3
- data/lib/karafka/connection/manager.rb +1 -0
- data/lib/karafka/connection/proxy.rb +12 -8
- data/lib/karafka/connection/rebalance_manager.rb +1 -1
- data/lib/karafka/connection/status.rb +1 -0
- data/lib/karafka/constraints.rb +1 -1
- data/lib/karafka/contracts/base.rb +1 -1
- data/lib/karafka/deserializers/payload.rb +1 -1
- data/lib/karafka/env.rb +1 -2
- data/lib/karafka/helpers/async.rb +1 -1
- data/lib/karafka/helpers/config_importer.rb +3 -3
- data/lib/karafka/helpers/interval_runner.rb +4 -1
- data/lib/karafka/helpers/multi_delegator.rb +3 -0
- data/lib/karafka/instrumentation/assignments_tracker.rb +19 -1
- data/lib/karafka/instrumentation/callbacks/error.rb +2 -2
- data/lib/karafka/instrumentation/callbacks/statistics.rb +3 -3
- data/lib/karafka/instrumentation/logger.rb +6 -6
- data/lib/karafka/instrumentation/monitor.rb +3 -3
- data/lib/karafka/instrumentation/notifications.rb +1 -0
- data/lib/karafka/instrumentation/vendors/appsignal/base.rb +3 -4
- data/lib/karafka/instrumentation/vendors/datadog/logger_listener.rb +3 -4
- data/lib/karafka/instrumentation/vendors/datadog/metrics_listener.rb +10 -11
- data/lib/karafka/instrumentation/vendors/kubernetes/base_listener.rb +1 -1
- data/lib/karafka/instrumentation/vendors/kubernetes/liveness_listener.rb +5 -18
- data/lib/karafka/messages/builders/batch_metadata.rb +2 -2
- data/lib/karafka/messages/builders/message.rb +1 -1
- data/lib/karafka/messages/messages.rb +2 -3
- data/lib/karafka/patches/rdkafka/bindings.rb +6 -6
- data/lib/karafka/patches/rdkafka/opaque.rb +1 -1
- data/lib/karafka/pro/active_job/consumer.rb +2 -2
- data/lib/karafka/pro/active_job/dispatcher.rb +10 -6
- data/lib/karafka/pro/active_job/job_options_contract.rb +2 -4
- data/lib/karafka/pro/cleaner/messages/messages.rb +2 -3
- data/lib/karafka/pro/cleaner.rb +3 -3
- data/lib/karafka/pro/cli/contracts/server.rb +3 -5
- data/lib/karafka/pro/cli/parallel_segments/base.rb +5 -5
- data/lib/karafka/pro/cli/parallel_segments/collapse.rb +3 -3
- data/lib/karafka/pro/cli/parallel_segments/distribute.rb +3 -3
- data/lib/karafka/pro/cli/parallel_segments.rb +1 -1
- data/lib/karafka/pro/connection/manager.rb +3 -4
- data/lib/karafka/pro/connection/multiplexing/listener.rb +1 -0
- data/lib/karafka/pro/contracts/base.rb +1 -1
- data/lib/karafka/pro/encryption/cipher.rb +3 -2
- data/lib/karafka/pro/encryption/contracts/config.rb +5 -7
- data/lib/karafka/pro/encryption/messages/parser.rb +4 -4
- data/lib/karafka/pro/encryption/setup/config.rb +1 -1
- data/lib/karafka/pro/instrumentation/performance_tracker.rb +3 -3
- data/lib/karafka/pro/iterator/expander.rb +1 -1
- data/lib/karafka/pro/iterator/tpl_builder.rb +2 -2
- data/lib/karafka/pro/iterator.rb +3 -3
- data/lib/karafka/pro/loader.rb +1 -1
- data/lib/karafka/pro/processing/coordinator.rb +1 -1
- data/lib/karafka/pro/processing/coordinators/errors_tracker.rb +2 -3
- data/lib/karafka/pro/processing/coordinators/filters_applier.rb +3 -3
- data/lib/karafka/pro/processing/filters/base.rb +1 -0
- data/lib/karafka/pro/processing/filters/delayer.rb +1 -1
- data/lib/karafka/pro/processing/filters/expirer.rb +1 -1
- data/lib/karafka/pro/processing/filters/inline_insights_delayer.rb +1 -1
- data/lib/karafka/pro/processing/filters/throttler.rb +1 -1
- data/lib/karafka/pro/processing/jobs/consume_non_blocking.rb +1 -1
- data/lib/karafka/pro/processing/jobs/eofed_non_blocking.rb +1 -1
- data/lib/karafka/pro/processing/jobs/periodic.rb +1 -1
- data/lib/karafka/pro/processing/jobs/revoked_non_blocking.rb +1 -1
- data/lib/karafka/pro/processing/jobs_builder.rb +1 -1
- data/lib/karafka/pro/processing/offset_metadata/fetcher.rb +1 -0
- data/lib/karafka/pro/processing/partitioner.rb +1 -1
- data/lib/karafka/pro/processing/schedulers/default.rb +2 -4
- data/lib/karafka/pro/processing/strategies/base.rb +1 -1
- data/lib/karafka/pro/processing/strategies/default.rb +2 -2
- data/lib/karafka/pro/processing/strategies/lrj/default.rb +2 -4
- data/lib/karafka/pro/processing/strategies/vp/default.rb +2 -4
- data/lib/karafka/pro/processing/strategy_selector.rb +1 -0
- data/lib/karafka/pro/processing/subscription_groups_coordinator.rb +2 -3
- data/lib/karafka/pro/processing/virtual_partitions/distributors/balanced.rb +4 -2
- data/lib/karafka/pro/processing/virtual_partitions/distributors/consistent.rb +4 -2
- data/lib/karafka/pro/recurring_tasks/consumer.rb +3 -2
- data/lib/karafka/pro/recurring_tasks/contracts/config.rb +4 -6
- data/lib/karafka/pro/recurring_tasks/contracts/task.rb +3 -5
- data/lib/karafka/pro/recurring_tasks/deserializer.rb +1 -1
- data/lib/karafka/pro/recurring_tasks/dispatcher.rb +7 -6
- data/lib/karafka/pro/recurring_tasks/executor.rb +2 -1
- data/lib/karafka/pro/recurring_tasks/schedule.rb +9 -8
- data/lib/karafka/pro/recurring_tasks/serializer.rb +6 -5
- data/lib/karafka/pro/recurring_tasks/setup/config.rb +2 -2
- data/lib/karafka/pro/recurring_tasks/task.rb +1 -1
- data/lib/karafka/pro/recurring_tasks.rb +8 -5
- data/lib/karafka/pro/routing/features/adaptive_iterator/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/dead_letter_queue/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/dead_letter_queue/topic.rb +3 -0
- data/lib/karafka/pro/routing/features/delaying/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/delaying/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/direct_assignments/contracts/consumer_group.rb +4 -8
- data/lib/karafka/pro/routing/features/direct_assignments/contracts/topic.rb +5 -7
- data/lib/karafka/pro/routing/features/direct_assignments/subscription_group.rb +7 -6
- data/lib/karafka/pro/routing/features/direct_assignments/topic.rb +2 -2
- data/lib/karafka/pro/routing/features/expiring/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/expiring/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/filtering/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/filtering/topic.rb +2 -3
- data/lib/karafka/pro/routing/features/inline_insights/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/long_running_job/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/multiplexing/contracts/topic.rb +3 -5
- data/lib/karafka/pro/routing/features/multiplexing/subscription_groups_builder.rb +1 -1
- data/lib/karafka/pro/routing/features/multiplexing.rb +5 -5
- data/lib/karafka/pro/routing/features/non_blocking_job/topic.rb +3 -3
- data/lib/karafka/pro/routing/features/offset_metadata/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/offset_metadata.rb +4 -4
- data/lib/karafka/pro/routing/features/parallel_segments/builder.rb +1 -1
- data/lib/karafka/pro/routing/features/parallel_segments/contracts/consumer_group.rb +2 -4
- data/lib/karafka/pro/routing/features/patterns/contracts/consumer_group.rb +3 -5
- data/lib/karafka/pro/routing/features/patterns/contracts/pattern.rb +2 -4
- data/lib/karafka/pro/routing/features/patterns/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/patterns/patterns.rb +1 -1
- data/lib/karafka/pro/routing/features/pausing/config.rb +26 -0
- data/lib/karafka/pro/routing/features/pausing/contracts/topic.rb +17 -11
- data/lib/karafka/pro/routing/features/pausing/topic.rb +69 -8
- data/lib/karafka/pro/routing/features/periodic_job/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/periodic_job/topic.rb +1 -1
- data/lib/karafka/pro/routing/features/recurring_tasks/builder.rb +1 -1
- data/lib/karafka/pro/routing/features/recurring_tasks/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/scheduled_messages/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/swarm/contracts/routing.rb +2 -4
- data/lib/karafka/pro/routing/features/swarm/contracts/topic.rb +6 -8
- data/lib/karafka/pro/routing/features/swarm.rb +1 -1
- data/lib/karafka/pro/routing/features/throttling/contracts/topic.rb +2 -4
- data/lib/karafka/pro/routing/features/throttling/topic.rb +3 -1
- data/lib/karafka/pro/routing/features/virtual_partitions/contracts/topic.rb +2 -4
- data/lib/karafka/pro/scheduled_messages/consumer.rb +1 -1
- data/lib/karafka/pro/scheduled_messages/contracts/config.rb +4 -6
- data/lib/karafka/pro/scheduled_messages/contracts/message.rb +3 -5
- data/lib/karafka/pro/scheduled_messages/daily_buffer.rb +3 -2
- data/lib/karafka/pro/scheduled_messages/day.rb +1 -0
- data/lib/karafka/pro/scheduled_messages/deserializers/headers.rb +1 -1
- data/lib/karafka/pro/scheduled_messages/deserializers/payload.rb +1 -1
- data/lib/karafka/pro/scheduled_messages/max_epoch.rb +1 -0
- data/lib/karafka/pro/scheduled_messages/proxy.rb +1 -1
- data/lib/karafka/pro/scheduled_messages/serializer.rb +3 -3
- data/lib/karafka/pro/scheduled_messages/setup/config.rb +2 -2
- data/lib/karafka/pro/scheduled_messages/state.rb +1 -0
- data/lib/karafka/pro/scheduled_messages/tracker.rb +1 -0
- data/lib/karafka/pro/scheduled_messages.rb +4 -6
- data/lib/karafka/pro/swarm/liveness_listener.rb +2 -2
- data/lib/karafka/process.rb +4 -4
- data/lib/karafka/processing/coordinator.rb +2 -4
- data/lib/karafka/processing/coordinators_buffer.rb +2 -3
- data/lib/karafka/processing/executor.rb +3 -4
- data/lib/karafka/processing/inline_insights/tracker.rb +1 -0
- data/lib/karafka/processing/jobs/base.rb +2 -3
- data/lib/karafka/processing/jobs_queue.rb +1 -1
- data/lib/karafka/processing/result.rb +1 -0
- data/lib/karafka/processing/strategy_selector.rb +1 -0
- data/lib/karafka/processing/workers_batch.rb +2 -3
- data/lib/karafka/railtie.rb +1 -0
- data/lib/karafka/routing/activity_manager.rb +3 -2
- data/lib/karafka/routing/builder.rb +8 -8
- data/lib/karafka/routing/consumer_group.rb +4 -6
- data/lib/karafka/routing/contracts/consumer_group.rb +6 -7
- data/lib/karafka/routing/contracts/routing.rb +2 -4
- data/lib/karafka/routing/contracts/topic.rb +7 -6
- data/lib/karafka/routing/features/active_job/contracts/topic.rb +2 -4
- data/lib/karafka/routing/features/active_job/topic.rb +6 -0
- data/lib/karafka/routing/features/dead_letter_queue/contracts/topic.rb +3 -5
- data/lib/karafka/routing/features/declaratives/contracts/topic.rb +3 -5
- data/lib/karafka/routing/features/declaratives/topic.rb +5 -2
- data/lib/karafka/routing/features/deserializers/contracts/topic.rb +2 -4
- data/lib/karafka/routing/features/deserializers/topic.rb +3 -3
- data/lib/karafka/routing/features/eofed/contracts/topic.rb +2 -4
- data/lib/karafka/routing/features/inline_insights/contracts/topic.rb +2 -4
- data/lib/karafka/routing/features/inline_insights.rb +5 -5
- data/lib/karafka/routing/features/manual_offset_management/contracts/topic.rb +2 -4
- data/lib/karafka/routing/router.rb +1 -1
- data/lib/karafka/routing/subscription_group.rb +1 -1
- data/lib/karafka/routing/subscription_groups_builder.rb +1 -0
- data/lib/karafka/routing/topic.rb +3 -3
- data/lib/karafka/routing/topics.rb +4 -9
- data/lib/karafka/server.rb +2 -2
- data/lib/karafka/setup/attributes_map.rb +4 -2
- data/lib/karafka/setup/config.rb +85 -17
- data/lib/karafka/setup/config_proxy.rb +209 -0
- data/lib/karafka/setup/contracts/config.rb +13 -11
- data/lib/karafka/setup/defaults_injector.rb +3 -2
- data/lib/karafka/setup/dsl.rb +2 -3
- data/lib/karafka/swarm/liveness_listener.rb +3 -3
- data/lib/karafka/swarm/manager.rb +7 -6
- data/lib/karafka/swarm/node.rb +1 -1
- data/lib/karafka/swarm/supervisor.rb +2 -1
- data/lib/karafka/time_trackers/base.rb +1 -1
- data/lib/karafka/version.rb +1 -1
- data/lib/karafka.rb +4 -4
- metadata +14 -6
- data/.diffend.yml +0 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d7b2a6d732bc69e537d14e306a4edc922b6375aa0154dada74527b06efea34fa
|
|
4
|
+
data.tar.gz: 2e6c1f533f706d70699db822d6d34eac5b6df0c0275bc12366238cc7316a3793
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c760fb9e76f6e3af5421cfc0d821d03c3c845c629ea4ab1b2bcfa89c50431320b5cada72482eb48dfc9c27718631e1920ca5133ccd3884daddbc84cc6a7288e7
|
|
7
|
+
data.tar.gz: ce5466e71edc225b9e11283be5f7e1f877f6222a766dd63f69a235a0739a812f5007da341f5010a71eb2322efebb400fa441a7188f41ac6c244acade0b37c4e4
|
|
@@ -18,28 +18,6 @@ env:
|
|
|
18
18
|
BUNDLE_JOBS: 4
|
|
19
19
|
|
|
20
20
|
jobs:
|
|
21
|
-
diffend:
|
|
22
|
-
runs-on: ubuntu-latest
|
|
23
|
-
timeout-minutes: 5
|
|
24
|
-
strategy:
|
|
25
|
-
fail-fast: false
|
|
26
|
-
steps:
|
|
27
|
-
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
28
|
-
with:
|
|
29
|
-
fetch-depth: 0
|
|
30
|
-
|
|
31
|
-
- name: Set up Ruby
|
|
32
|
-
uses: ruby/setup-ruby@cf7216d52fba1017929b4d7162fabe2b30af5b49 # v1.262.0
|
|
33
|
-
with:
|
|
34
|
-
ruby-version: 3.4
|
|
35
|
-
bundler-cache: true
|
|
36
|
-
|
|
37
|
-
- name: Install Diffend plugin
|
|
38
|
-
run: bundle plugin install diffend
|
|
39
|
-
|
|
40
|
-
- name: Bundle Secure
|
|
41
|
-
run: bundle secure
|
|
42
|
-
|
|
43
21
|
karafka-checksum:
|
|
44
22
|
runs-on: ubuntu-latest
|
|
45
23
|
timeout-minutes: 5
|
|
@@ -82,12 +60,28 @@ jobs:
|
|
|
82
60
|
- name: Run Coditsu
|
|
83
61
|
run: ./coditsu_script.sh
|
|
84
62
|
|
|
63
|
+
yard-lint:
|
|
64
|
+
runs-on: ubuntu-latest
|
|
65
|
+
timeout-minutes: 5
|
|
66
|
+
strategy:
|
|
67
|
+
fail-fast: false
|
|
68
|
+
steps:
|
|
69
|
+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
70
|
+
with:
|
|
71
|
+
fetch-depth: 0
|
|
72
|
+
- name: Set up Ruby
|
|
73
|
+
uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
74
|
+
with:
|
|
75
|
+
ruby-version: '3.4.7'
|
|
76
|
+
bundler-cache: true
|
|
77
|
+
- name: Run yard-lint
|
|
78
|
+
run: bundle exec yard-lint lib/
|
|
79
|
+
|
|
85
80
|
# We do not split RSpec specs to OSS and Pro like integrations because they do not overload
|
|
86
81
|
# Kafka heavily, compute total coverage for specs and are fast enough
|
|
87
82
|
specs:
|
|
88
83
|
timeout-minutes: 15
|
|
89
84
|
runs-on: ubuntu-latest
|
|
90
|
-
needs: diffend
|
|
91
85
|
env:
|
|
92
86
|
BUNDLE_FORCE_RUBY_PLATFORM: ${{ matrix.force_ruby_platform }}
|
|
93
87
|
strategy:
|
|
@@ -118,7 +112,7 @@ jobs:
|
|
|
118
112
|
run: rm -f Gemfile.lock
|
|
119
113
|
|
|
120
114
|
- name: Set up Ruby
|
|
121
|
-
uses: ruby/setup-ruby@
|
|
115
|
+
uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
122
116
|
with:
|
|
123
117
|
ruby-version: ${{matrix.ruby}}
|
|
124
118
|
bundler-cache: true
|
|
@@ -142,7 +136,6 @@ jobs:
|
|
|
142
136
|
integrations_oss:
|
|
143
137
|
timeout-minutes: 30
|
|
144
138
|
runs-on: ubuntu-latest
|
|
145
|
-
needs: diffend
|
|
146
139
|
env:
|
|
147
140
|
BUNDLE_FORCE_RUBY_PLATFORM: ${{ matrix.force_ruby_platform }}
|
|
148
141
|
strategy:
|
|
@@ -169,7 +162,7 @@ jobs:
|
|
|
169
162
|
docker compose up -d || (sleep 5 && docker compose up -d)
|
|
170
163
|
|
|
171
164
|
- name: Set up Ruby
|
|
172
|
-
uses: ruby/setup-ruby@
|
|
165
|
+
uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
173
166
|
with:
|
|
174
167
|
# Do not use cache here as we run bundle install also later in some of the integration
|
|
175
168
|
# tests and we need to be able to run it without cache
|
|
@@ -214,7 +207,6 @@ jobs:
|
|
|
214
207
|
integrations_pro:
|
|
215
208
|
timeout-minutes: 45
|
|
216
209
|
runs-on: ubuntu-latest
|
|
217
|
-
needs: diffend
|
|
218
210
|
env:
|
|
219
211
|
BUNDLE_FORCE_RUBY_PLATFORM: ${{ matrix.force_ruby_platform }}
|
|
220
212
|
strategy:
|
|
@@ -241,7 +233,7 @@ jobs:
|
|
|
241
233
|
docker compose up -d || (sleep 5 && docker compose up -d)
|
|
242
234
|
|
|
243
235
|
- name: Set up Ruby
|
|
244
|
-
uses: ruby/setup-ruby@
|
|
236
|
+
uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
245
237
|
with:
|
|
246
238
|
ruby-version: ${{matrix.ruby}}
|
|
247
239
|
bundler: 'latest'
|
|
@@ -288,9 +280,9 @@ jobs:
|
|
|
288
280
|
runs-on: ubuntu-latest
|
|
289
281
|
if: always()
|
|
290
282
|
needs:
|
|
291
|
-
- diffend
|
|
292
283
|
- karafka-checksum
|
|
293
284
|
- coditsu
|
|
285
|
+
- yard-lint
|
|
294
286
|
- specs
|
|
295
287
|
- integrations_oss
|
|
296
288
|
- integrations_pro
|
|
@@ -117,7 +117,7 @@ jobs:
|
|
|
117
117
|
run: rm -f Gemfile.lock
|
|
118
118
|
|
|
119
119
|
- name: Set up Ruby
|
|
120
|
-
uses: ruby/setup-ruby@
|
|
120
|
+
uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
121
121
|
with:
|
|
122
122
|
ruby-version: ${{ matrix.ruby }}
|
|
123
123
|
bundler-cache: true
|
data/.github/workflows/push.yml
CHANGED
|
@@ -24,7 +24,7 @@ jobs:
|
|
|
24
24
|
fetch-depth: 0
|
|
25
25
|
|
|
26
26
|
- name: Set up Ruby
|
|
27
|
-
uses: ruby/setup-ruby@
|
|
27
|
+
uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
28
28
|
with:
|
|
29
29
|
bundler-cache: false
|
|
30
30
|
|
|
@@ -32,4 +32,4 @@ jobs:
|
|
|
32
32
|
run: |
|
|
33
33
|
bundle install --jobs 4 --retry 3
|
|
34
34
|
|
|
35
|
-
- uses: rubygems/release-gem@
|
|
35
|
+
- uses: rubygems/release-gem@1c162a739e8b4cb21a676e97b087e8268d8fc40b # v1.1.2
|
|
@@ -13,7 +13,7 @@ jobs:
|
|
|
13
13
|
if: github.repository_owner == 'karafka'
|
|
14
14
|
steps:
|
|
15
15
|
- name: Trigger wiki refresh
|
|
16
|
-
uses: peter-evans/repository-dispatch@
|
|
16
|
+
uses: peter-evans/repository-dispatch@5fc4efd1a4797ddb68ffd0714a238564e4cc0e6f # v4.0.0
|
|
17
17
|
with:
|
|
18
18
|
token: ${{ secrets.WIKI_REPO_TOKEN }}
|
|
19
19
|
repository: karafka/wiki
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.4.
|
|
1
|
+
3.4.7
|
data/.yard-lint.yml
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# YARD-Lint Configuration
|
|
2
|
+
# See https://github.com/mensfeld/yard-lint for documentation
|
|
3
|
+
|
|
4
|
+
# Global settings for all validators
|
|
5
|
+
AllValidators:
|
|
6
|
+
# YARD command-line options (applied to all validators by default)
|
|
7
|
+
YardOptions:
|
|
8
|
+
- --private
|
|
9
|
+
- --protected
|
|
10
|
+
|
|
11
|
+
# Global file exclusion patterns
|
|
12
|
+
Exclude:
|
|
13
|
+
- '\.git'
|
|
14
|
+
- 'vendor/**/*'
|
|
15
|
+
- 'node_modules/**/*'
|
|
16
|
+
- 'spec/**/*'
|
|
17
|
+
- 'test/**/*'
|
|
18
|
+
|
|
19
|
+
# Exit code behavior (error, warning, convention, never)
|
|
20
|
+
FailOnSeverity: error
|
|
21
|
+
|
|
22
|
+
# Minimum documentation coverage percentage (0-100)
|
|
23
|
+
# Fails if coverage is below this threshold
|
|
24
|
+
MinCoverage: 99.0
|
|
25
|
+
|
|
26
|
+
# Diff mode settings
|
|
27
|
+
DiffMode:
|
|
28
|
+
# Default base ref for --diff (auto-detects main/master if not specified)
|
|
29
|
+
DefaultBaseRef: ~
|
|
30
|
+
|
|
31
|
+
# Documentation validators
|
|
32
|
+
Documentation/UndocumentedObjects:
|
|
33
|
+
Description: 'Checks for classes, modules, and methods without documentation.'
|
|
34
|
+
Enabled: true
|
|
35
|
+
Severity: error
|
|
36
|
+
ExcludedMethods:
|
|
37
|
+
- 'initialize/0' # Exclude parameter-less initialize
|
|
38
|
+
- '/^_/' # Exclude private methods (by convention)
|
|
39
|
+
|
|
40
|
+
Documentation/UndocumentedMethodArguments:
|
|
41
|
+
Description: 'Checks for method parameters without @param tags.'
|
|
42
|
+
Enabled: true
|
|
43
|
+
Severity: error
|
|
44
|
+
|
|
45
|
+
Documentation/UndocumentedBooleanMethods:
|
|
46
|
+
Description: 'Checks that question mark methods document their boolean return.'
|
|
47
|
+
Enabled: true
|
|
48
|
+
Severity: error
|
|
49
|
+
|
|
50
|
+
Documentation/UndocumentedOptions:
|
|
51
|
+
Description: 'Detects methods with options hash parameters but no @option tags.'
|
|
52
|
+
Enabled: true
|
|
53
|
+
Severity: error
|
|
54
|
+
|
|
55
|
+
Documentation/MarkdownSyntax:
|
|
56
|
+
Description: 'Detects common markdown syntax errors in documentation.'
|
|
57
|
+
Enabled: true
|
|
58
|
+
Severity: error
|
|
59
|
+
|
|
60
|
+
# Tags validators
|
|
61
|
+
Tags/Order:
|
|
62
|
+
Description: 'Enforces consistent ordering of YARD tags.'
|
|
63
|
+
Enabled: true
|
|
64
|
+
Severity: error
|
|
65
|
+
EnforcedOrder:
|
|
66
|
+
- param
|
|
67
|
+
- option
|
|
68
|
+
- return
|
|
69
|
+
- raise
|
|
70
|
+
- example
|
|
71
|
+
|
|
72
|
+
Tags/InvalidTypes:
|
|
73
|
+
Description: 'Validates type definitions in @param, @return, @option tags.'
|
|
74
|
+
Enabled: true
|
|
75
|
+
Severity: error
|
|
76
|
+
ValidatedTags:
|
|
77
|
+
- param
|
|
78
|
+
- option
|
|
79
|
+
- return
|
|
80
|
+
|
|
81
|
+
Tags/TypeSyntax:
|
|
82
|
+
Description: 'Validates YARD type syntax using YARD parser.'
|
|
83
|
+
Enabled: true
|
|
84
|
+
Severity: error
|
|
85
|
+
ValidatedTags:
|
|
86
|
+
- param
|
|
87
|
+
- option
|
|
88
|
+
- return
|
|
89
|
+
- yieldreturn
|
|
90
|
+
|
|
91
|
+
Tags/MeaninglessTag:
|
|
92
|
+
Description: 'Detects @param/@option tags on classes, modules, or constants.'
|
|
93
|
+
Enabled: true
|
|
94
|
+
Severity: error
|
|
95
|
+
CheckedTags:
|
|
96
|
+
- param
|
|
97
|
+
- option
|
|
98
|
+
InvalidObjectTypes:
|
|
99
|
+
- class
|
|
100
|
+
- module
|
|
101
|
+
- constant
|
|
102
|
+
|
|
103
|
+
Tags/CollectionType:
|
|
104
|
+
Description: 'Validates Hash collection syntax consistency.'
|
|
105
|
+
Enabled: true
|
|
106
|
+
Severity: error
|
|
107
|
+
EnforcedStyle: long # 'long' for Hash{K => V} (YARD standard), 'short' for {K => V}
|
|
108
|
+
ValidatedTags:
|
|
109
|
+
- param
|
|
110
|
+
- option
|
|
111
|
+
- return
|
|
112
|
+
- yieldreturn
|
|
113
|
+
|
|
114
|
+
Tags/TagTypePosition:
|
|
115
|
+
Description: 'Validates type annotation position in tags.'
|
|
116
|
+
Enabled: true
|
|
117
|
+
Severity: error
|
|
118
|
+
CheckedTags:
|
|
119
|
+
- param
|
|
120
|
+
- option
|
|
121
|
+
# EnforcedStyle: 'type_after_name' (YARD standard: @param name [Type])
|
|
122
|
+
# or 'type_first' (@param [Type] name)
|
|
123
|
+
EnforcedStyle: type_after_name
|
|
124
|
+
|
|
125
|
+
Tags/ApiTags:
|
|
126
|
+
Description: 'Enforces @api tags on public objects.'
|
|
127
|
+
Enabled: false # Opt-in validator
|
|
128
|
+
Severity: error
|
|
129
|
+
AllowedApis:
|
|
130
|
+
- public
|
|
131
|
+
- private
|
|
132
|
+
- internal
|
|
133
|
+
|
|
134
|
+
Tags/OptionTags:
|
|
135
|
+
Description: 'Requires @option tags for methods with options parameters.'
|
|
136
|
+
Enabled: true
|
|
137
|
+
Severity: error
|
|
138
|
+
|
|
139
|
+
# Warnings validators - catches YARD parser errors
|
|
140
|
+
Warnings/UnknownTag:
|
|
141
|
+
Description: 'Detects unknown YARD tags.'
|
|
142
|
+
Enabled: true
|
|
143
|
+
Severity: error
|
|
144
|
+
|
|
145
|
+
Warnings/UnknownDirective:
|
|
146
|
+
Description: 'Detects unknown YARD directives.'
|
|
147
|
+
Enabled: true
|
|
148
|
+
Severity: error
|
|
149
|
+
|
|
150
|
+
Warnings/InvalidTagFormat:
|
|
151
|
+
Description: 'Detects malformed tag syntax.'
|
|
152
|
+
Enabled: true
|
|
153
|
+
Severity: error
|
|
154
|
+
|
|
155
|
+
Warnings/InvalidDirectiveFormat:
|
|
156
|
+
Description: 'Detects malformed directive syntax.'
|
|
157
|
+
Enabled: true
|
|
158
|
+
Severity: error
|
|
159
|
+
|
|
160
|
+
Warnings/DuplicatedParameterName:
|
|
161
|
+
Description: 'Detects duplicate @param tags.'
|
|
162
|
+
Enabled: true
|
|
163
|
+
Severity: error
|
|
164
|
+
|
|
165
|
+
Warnings/UnknownParameterName:
|
|
166
|
+
Description: 'Detects @param tags for non-existent parameters.'
|
|
167
|
+
Enabled: true
|
|
168
|
+
Severity: error
|
|
169
|
+
|
|
170
|
+
# Semantic validators
|
|
171
|
+
Semantic/AbstractMethods:
|
|
172
|
+
Description: 'Ensures @abstract methods do not have real implementations.'
|
|
173
|
+
Enabled: true
|
|
174
|
+
Severity: error
|
data/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
# Karafka Framework Changelog
|
|
2
2
|
|
|
3
|
+
## 2.5.3 (2025-11-14)
|
|
4
|
+
- [Enhancement] Dynamically support `librdkafka` fatal errors with correct reported details.
|
|
5
|
+
- [Enhancement] Add `producer` block API to setup for simplified WaterDrop producer configuration without manual producer instance creation, using a transparent ConfigProxy during setup to avoid polluting the permanent config API.
|
|
6
|
+
- [Change] Require `waterdrop` `>=` `2.8.14` to support new features.
|
|
7
|
+
- [Change] Require `karafka-rdkafka` `>=` `0.23.1` to support new rebalance protocol.
|
|
8
|
+
|
|
9
|
+
## 2.5.2 (2025-10-31)
|
|
10
|
+
- **[EOL]** Remove Rails 7.1 support according to EOL while not blocking Rails 7.1 usage.
|
|
11
|
+
- [Enhancement] Retry on the KIP-848 `stale_member_epoch` error.
|
|
12
|
+
- [Enhancement] Provide `Karafka::Admin.trigger_rebalance` API to programmatically trigger consumer group rebalances for operational purposes.
|
|
13
|
+
- [Enhancement] Nest pause configuration under `config.pause.*` namespace (`config.pause.timeout`, `config.pause.max_timeout`, `config.pause.with_exponential_backoff`) while maintaining backwards compatibility with the old flat API (`config.pause_timeout`, etc.) via delegation methods that will be removed in Karafka 2.6.
|
|
14
|
+
- [Enhancement] Detect and track involuntary assignment loss during long-running processing that exceeds `max.poll.interval.ms` via `client.events_poll` event and automatically update `Karafka::App.assignments` to reflect reality.
|
|
15
|
+
- [Enhancement] Extend `Karafka::Admin.read_watermark_offsets` to accept either a single topic with partition or a hash of multiple topics with partitions, using a single consumer instance for improved efficiency when querying multiple partitions.
|
|
16
|
+
- [Enhancement] Add configurable `Karafka::ActiveJob::Deserializer` to support custom serialization formats (Avro, Protobuf, etc.) for ActiveJob payloads.
|
|
17
|
+
- [Fix] Fix ActiveJob Continuation invalid class reference bug.
|
|
18
|
+
|
|
3
19
|
## 2.5.1 (2025-09-29)
|
|
4
|
-
- **[
|
|
20
|
+
- **[EOL]** Remove Ruby 3.1 support according to EOL.
|
|
5
21
|
- **[Feature]** Support Swarm mode on MacOS.
|
|
6
22
|
- [Enhancement] Support past `dispatch_at` times with `jitter: 0` in the OSS Karafka to support ActiveJob continuation.
|
|
7
23
|
- [Enhancement] Use direct topic dispatches when `dispatch_at` is used for past times to bypass Scheduled Messages flow.
|
|
@@ -32,7 +48,7 @@
|
|
|
32
48
|
- [Change] Require `karafka-rdkafka` `>=` `0.22.0` to support new features and require SSL-bug free version.
|
|
33
49
|
- [Change] Remove no longer needed `cooperative.sticky` rebalance patch.
|
|
34
50
|
- [Change] Normalize how libs and deps are required (no functional change for the end user)
|
|
35
|
-
- [
|
|
51
|
+
- **[EOL]** Remove Ruby `3.1` specs according to the EOL schedule.
|
|
36
52
|
|
|
37
53
|
## 2.5.0 (2025-06-15)
|
|
38
54
|
- **[Breaking]** Change how consistency of DLQ dispatches works in Pro (`partition_key` vs. direct partition id mapping).
|
|
@@ -88,7 +104,7 @@
|
|
|
88
104
|
- [Maintenance] Lower the `Karafka::Admin` `poll_timeout` to 50 ms to improve responsiveness of admin operations.
|
|
89
105
|
- [Maintenance] Require `karafka-rdkafka` `>=` `0.19.5` due to usage of `#rd_kafka_global_init`, KIP-82, new producer caching engine and improvements to the `partition_key` assignments.
|
|
90
106
|
- [Maintenance] Add Deimos routing patch into integration suite not to break it in the future.
|
|
91
|
-
- [
|
|
107
|
+
- **[EOL]** Remove Rails `7.0` specs due to upcoming EOL.
|
|
92
108
|
- [Fix] Fix Recurring Tasks and Scheduled Messages not working with Swarm (using closed producer).
|
|
93
109
|
- [Fix] Fix a case where `unknown_topic_or_part` error could leak out of the consumer on consumer shutdown.
|
|
94
110
|
- [Fix] Fix missing `virtual_partitions.partitioner.error` custom error logging in the `LoggerListener`.
|
|
@@ -254,7 +270,7 @@
|
|
|
254
270
|
|
|
255
271
|
This release contains **BREAKING** changes. Make sure to read and apply upgrade notes.
|
|
256
272
|
|
|
257
|
-
- **[
|
|
273
|
+
- **[EOL]** Drop Ruby `2.7` support.
|
|
258
274
|
- **[Breaking]** Drop the concept of consumer group mapping.
|
|
259
275
|
- **[Breaking]** `karafka topics migrate` will now perform declarative topics configuration alignment.
|
|
260
276
|
- **[Breaking]** Replace `deserializer` config with `#deserializers` in routing to support key and lazy header deserializers.
|
data/Gemfile
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
source 'https://rubygems.org'
|
|
4
4
|
|
|
5
|
-
plugin 'diffend'
|
|
6
|
-
|
|
7
5
|
gemspec
|
|
8
6
|
|
|
9
7
|
# Karafka gem does not require activejob, karafka-web or fugit to work
|
|
@@ -27,4 +25,5 @@ group :test do
|
|
|
27
25
|
gem 'factory_bot'
|
|
28
26
|
gem 'ostruct'
|
|
29
27
|
gem 'simplecov'
|
|
28
|
+
gem 'yard-lint'
|
|
30
29
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,35 +1,34 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
karafka (2.5.
|
|
4
|
+
karafka (2.5.3)
|
|
5
5
|
base64 (~> 0.2)
|
|
6
6
|
karafka-core (>= 2.5.6, < 2.6.0)
|
|
7
|
-
karafka-rdkafka (>= 0.
|
|
8
|
-
waterdrop (>= 2.8.
|
|
7
|
+
karafka-rdkafka (>= 0.23.1)
|
|
8
|
+
waterdrop (>= 2.8.14, < 3.0.0)
|
|
9
9
|
zeitwerk (~> 2.3)
|
|
10
10
|
|
|
11
11
|
GEM
|
|
12
12
|
remote: https://rubygems.org/
|
|
13
13
|
specs:
|
|
14
|
-
activejob (8.
|
|
15
|
-
activesupport (= 8.
|
|
14
|
+
activejob (8.1.1)
|
|
15
|
+
activesupport (= 8.1.1)
|
|
16
16
|
globalid (>= 0.3.6)
|
|
17
|
-
activesupport (8.
|
|
17
|
+
activesupport (8.1.1)
|
|
18
18
|
base64
|
|
19
|
-
benchmark (>= 0.3)
|
|
20
19
|
bigdecimal
|
|
21
20
|
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
22
21
|
connection_pool (>= 2.2.5)
|
|
23
22
|
drb
|
|
24
23
|
i18n (>= 1.6, < 2)
|
|
24
|
+
json
|
|
25
25
|
logger (>= 1.4.2)
|
|
26
26
|
minitest (>= 5.1)
|
|
27
27
|
securerandom (>= 0.3)
|
|
28
28
|
tzinfo (~> 2.0, >= 2.0.5)
|
|
29
29
|
uri (>= 0.13.1)
|
|
30
30
|
base64 (0.3.0)
|
|
31
|
-
|
|
32
|
-
bigdecimal (3.2.3)
|
|
31
|
+
bigdecimal (3.3.1)
|
|
33
32
|
byebug (12.0.0)
|
|
34
33
|
concurrent-ruby (1.3.5)
|
|
35
34
|
connection_pool (2.5.4)
|
|
@@ -37,9 +36,9 @@ GEM
|
|
|
37
36
|
docile (1.4.1)
|
|
38
37
|
drb (2.2.3)
|
|
39
38
|
erubi (1.13.1)
|
|
40
|
-
et-orbi (1.
|
|
39
|
+
et-orbi (1.4.0)
|
|
41
40
|
tzinfo
|
|
42
|
-
factory_bot (6.5.
|
|
41
|
+
factory_bot (6.5.6)
|
|
43
42
|
activesupport (>= 6.1.0)
|
|
44
43
|
ffi (1.17.2)
|
|
45
44
|
ffi (1.17.2-aarch64-linux-gnu)
|
|
@@ -52,78 +51,78 @@ GEM
|
|
|
52
51
|
ffi (1.17.2-x86_64-darwin)
|
|
53
52
|
ffi (1.17.2-x86_64-linux-gnu)
|
|
54
53
|
ffi (1.17.2-x86_64-linux-musl)
|
|
55
|
-
fugit (1.
|
|
56
|
-
et-orbi (~> 1
|
|
54
|
+
fugit (1.12.1)
|
|
55
|
+
et-orbi (~> 1.4)
|
|
57
56
|
raabro (~> 1.4)
|
|
58
|
-
globalid (1.
|
|
57
|
+
globalid (1.3.0)
|
|
59
58
|
activesupport (>= 6.1)
|
|
60
59
|
i18n (1.14.7)
|
|
61
60
|
concurrent-ruby (~> 1.0)
|
|
62
|
-
json (2.15.
|
|
61
|
+
json (2.15.2)
|
|
63
62
|
karafka-core (2.5.7)
|
|
64
63
|
karafka-rdkafka (>= 0.20.0)
|
|
65
64
|
logger (>= 1.6.0)
|
|
66
|
-
karafka-rdkafka (0.
|
|
67
|
-
ffi (~> 1.
|
|
65
|
+
karafka-rdkafka (0.23.1)
|
|
66
|
+
ffi (~> 1.17.1)
|
|
68
67
|
json (> 2.0)
|
|
69
68
|
logger
|
|
70
69
|
mini_portile2 (~> 2.6)
|
|
71
70
|
rake (> 12)
|
|
72
|
-
karafka-rdkafka (0.
|
|
73
|
-
ffi (~> 1.
|
|
71
|
+
karafka-rdkafka (0.23.1-aarch64-linux-gnu)
|
|
72
|
+
ffi (~> 1.17.1)
|
|
74
73
|
json (> 2.0)
|
|
75
74
|
logger
|
|
76
75
|
mini_portile2 (~> 2.6)
|
|
77
76
|
rake (> 12)
|
|
78
|
-
karafka-rdkafka (0.
|
|
79
|
-
ffi (~> 1.
|
|
77
|
+
karafka-rdkafka (0.23.1-arm64-darwin)
|
|
78
|
+
ffi (~> 1.17.1)
|
|
80
79
|
json (> 2.0)
|
|
81
80
|
logger
|
|
82
81
|
mini_portile2 (~> 2.6)
|
|
83
82
|
rake (> 12)
|
|
84
|
-
karafka-rdkafka (0.
|
|
85
|
-
ffi (~> 1.
|
|
83
|
+
karafka-rdkafka (0.23.1-x86_64-linux-gnu)
|
|
84
|
+
ffi (~> 1.17.1)
|
|
86
85
|
json (> 2.0)
|
|
87
86
|
logger
|
|
88
87
|
mini_portile2 (~> 2.6)
|
|
89
88
|
rake (> 12)
|
|
90
|
-
karafka-rdkafka (0.
|
|
91
|
-
ffi (~> 1.
|
|
89
|
+
karafka-rdkafka (0.23.1-x86_64-linux-musl)
|
|
90
|
+
ffi (~> 1.17.1)
|
|
92
91
|
json (> 2.0)
|
|
93
92
|
logger
|
|
94
93
|
mini_portile2 (~> 2.6)
|
|
95
94
|
rake (> 12)
|
|
96
|
-
karafka-testing (2.5.
|
|
97
|
-
karafka (>= 2.5.0
|
|
95
|
+
karafka-testing (2.5.4)
|
|
96
|
+
karafka (>= 2.5.0, < 2.6.0)
|
|
98
97
|
waterdrop (>= 2.8.0)
|
|
99
|
-
karafka-web (0.11.
|
|
98
|
+
karafka-web (0.11.4)
|
|
100
99
|
erubi (~> 1.4)
|
|
101
|
-
karafka (>= 2.5.
|
|
100
|
+
karafka (>= 2.5.2, < 2.6.0)
|
|
102
101
|
karafka-core (>= 2.5.0, < 2.6.0)
|
|
103
102
|
roda (~> 3.68, >= 3.69)
|
|
104
103
|
tilt (~> 2.0)
|
|
105
104
|
logger (1.7.0)
|
|
106
105
|
mini_portile2 (2.8.9)
|
|
107
|
-
minitest (5.
|
|
106
|
+
minitest (5.26.0)
|
|
108
107
|
ostruct (0.6.3)
|
|
109
108
|
raabro (1.4.0)
|
|
110
|
-
rack (3.2.
|
|
111
|
-
rake (13.3.
|
|
112
|
-
roda (3.
|
|
109
|
+
rack (3.2.3)
|
|
110
|
+
rake (13.3.1)
|
|
111
|
+
roda (3.97.0)
|
|
113
112
|
rack
|
|
114
|
-
rspec (3.13.
|
|
113
|
+
rspec (3.13.2)
|
|
115
114
|
rspec-core (~> 3.13.0)
|
|
116
115
|
rspec-expectations (~> 3.13.0)
|
|
117
116
|
rspec-mocks (~> 3.13.0)
|
|
118
|
-
rspec-core (3.13.
|
|
117
|
+
rspec-core (3.13.6)
|
|
119
118
|
rspec-support (~> 3.13.0)
|
|
120
119
|
rspec-expectations (3.13.5)
|
|
121
120
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
122
121
|
rspec-support (~> 3.13.0)
|
|
123
|
-
rspec-mocks (3.13.
|
|
122
|
+
rspec-mocks (3.13.6)
|
|
124
123
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
125
124
|
rspec-support (~> 3.13.0)
|
|
126
|
-
rspec-support (3.13.
|
|
125
|
+
rspec-support (3.13.6)
|
|
127
126
|
securerandom (0.4.1)
|
|
128
127
|
simplecov (0.22.0)
|
|
129
128
|
docile (~> 1.1)
|
|
@@ -131,16 +130,20 @@ GEM
|
|
|
131
130
|
simplecov_json_formatter (~> 0.1)
|
|
132
131
|
simplecov-html (0.13.2)
|
|
133
132
|
simplecov_json_formatter (0.1.4)
|
|
134
|
-
stringio (3.1.
|
|
133
|
+
stringio (3.1.8)
|
|
135
134
|
tilt (2.6.1)
|
|
136
135
|
tzinfo (2.0.6)
|
|
137
136
|
concurrent-ruby (~> 1.0)
|
|
138
|
-
uri (1.0.
|
|
137
|
+
uri (1.0.4)
|
|
139
138
|
warning (1.5.0)
|
|
140
|
-
waterdrop (2.8.
|
|
139
|
+
waterdrop (2.8.14)
|
|
141
140
|
karafka-core (>= 2.4.9, < 3.0.0)
|
|
142
|
-
karafka-rdkafka (>= 0.
|
|
141
|
+
karafka-rdkafka (>= 0.23.1)
|
|
143
142
|
zeitwerk (~> 2.3)
|
|
143
|
+
yard (0.9.37)
|
|
144
|
+
yard-lint (1.2.3)
|
|
145
|
+
yard (~> 0.9)
|
|
146
|
+
zeitwerk (~> 2.6)
|
|
144
147
|
zeitwerk (2.7.3)
|
|
145
148
|
|
|
146
149
|
PLATFORMS
|
|
@@ -169,6 +172,7 @@ DEPENDENCIES
|
|
|
169
172
|
simplecov
|
|
170
173
|
stringio
|
|
171
174
|
warning
|
|
175
|
+
yard-lint
|
|
172
176
|
|
|
173
177
|
BUNDLED WITH
|
|
174
178
|
2.7.1
|
data/bin/integrations
CHANGED
|
@@ -52,7 +52,8 @@ class Scenario
|
|
|
52
52
|
'cli/declaratives/delete/existing_with_exit_code_spec.rb' => [2].freeze,
|
|
53
53
|
'cli/declaratives/create/new_with_exit_code_spec.rb' => [2].freeze,
|
|
54
54
|
'cli/declaratives/plan/when_changes_with_detailed_exit_code_spec.rb' => [2].freeze,
|
|
55
|
-
'cli/declaratives/align/incorrectly_spec.rb' => [1].freeze
|
|
55
|
+
'cli/declaratives/align/incorrectly_spec.rb' => [1].freeze,
|
|
56
|
+
'setup/with_kip_848_protocol_incorrect_config_spec.rb' => [1].freeze
|
|
56
57
|
}.freeze
|
|
57
58
|
|
|
58
59
|
private_constant :MAX_RUN_TIME, :EXIT_CODES
|
data/bin/rspecs
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
set -e
|
|
4
4
|
|
|
5
|
+
# We remove old coverage because under heavy development and parallel spec execution, the
|
|
6
|
+
# rspec results formatter tends to crash
|
|
7
|
+
rm -rf ./coverage
|
|
8
|
+
|
|
5
9
|
# Run only regular non-forking specs first
|
|
6
10
|
SPECS_TYPE=regular bundle exec rspec \
|
|
7
11
|
--tag ~type:pro \
|
data/config/locales/errors.yml
CHANGED
|
@@ -11,9 +11,11 @@ en:
|
|
|
11
11
|
group_id_format: 'needs to be a string with a Kafka accepted format'
|
|
12
12
|
concurrency_format: needs to be an integer bigger than 0
|
|
13
13
|
consumer_persistence_format: needs to be either true or false
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
|
|
15
|
+
pause.timeout_format: needs to be an integer bigger than 0
|
|
16
|
+
pause.max_timeout_format: needs to be an integer bigger than 0
|
|
17
|
+
pause.with_exponential_backoff_format: needs to be either true or false
|
|
18
|
+
|
|
17
19
|
strict_topics_namespacing_format: needs to be either true or false
|
|
18
20
|
strict_declarative_topics_format: needs to be either true or false
|
|
19
21
|
shutdown_timeout_format: needs to be an integer bigger than 0
|
|
@@ -23,7 +25,7 @@ en:
|
|
|
23
25
|
Decrease max_wait_time or increase node_report_timeout
|
|
24
26
|
kafka_format: needs to be a filled hash
|
|
25
27
|
key_must_be_a_symbol: All keys under the kafka settings scope need to be symbols
|
|
26
|
-
|
|
28
|
+
pause.timeout_max_timeout_vs_pause_max_timeout: pause.timeout must be less or equal to pause.max_timeout
|
|
27
29
|
shutdown_timeout_vs_max_wait_time: shutdown_timeout must be more than max_wait_time
|
|
28
30
|
worker_thread_priority_format: must be between -3 and 3
|
|
29
31
|
|
|
@@ -31,10 +31,11 @@ en:
|
|
|
31
31
|
delaying.delay_format: 'needs to be equal or more than 0 and an integer'
|
|
32
32
|
delaying.active_format: 'needs to be boolean'
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
pausing.active_format: 'needs to be boolean'
|
|
35
|
+
pausing.timeout_format: needs to be an integer bigger than 0
|
|
36
|
+
pausing.max_timeout_format: needs to be an integer bigger than 0
|
|
37
|
+
pausing.with_exponential_backoff_format: needs to be either true or false
|
|
38
|
+
pausing.timeout_max_timeout_vs_pause_max_timeout: timeout must be less or equal to max_timeout
|
|
38
39
|
|
|
39
40
|
patterns.active_format: 'needs to be boolean'
|
|
40
41
|
patterns.type_format: 'needs to be :matcher, :discovered or :regular'
|