waterdrop 2.8.6 → 2.8.7
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.yml +23 -4
- data/.github/workflows/trigger-wiki-refresh.yml +8 -1
- data/.github/workflows/verify-action-pins.yml +8 -1
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +18 -7
- data/bin/verify_kafka_warnings +1 -1
- data/lib/waterdrop/config.rb +4 -1
- data/lib/waterdrop/version.rb +1 -1
- data/lib/waterdrop.rb +7 -10
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6fd5bbc4f935b3d55794ad4f62970ab9feab3d4ebd100f9394c1bb456b8a9b5
|
4
|
+
data.tar.gz: 00ab23a92637285766a29741324b65422b77aba3522aa812b0f72350e3061585
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a41a342c8b16e167f1292ea6068647ac100f21f7f632342280a0bf69debcee3e6929f070e63b0fde2c28b85454edc6845d66895376a953c3ccaad48873646df
|
7
|
+
data.tar.gz: 89956ae428a553f91d91a8064954dea2095cb81457fd78f1565e31ec47e31799b823942931a08f1e6f2d0a7f04b7f730d5d1856fe01fd4de9a57055b5e301360
|
data/.github/workflows/ci.yml
CHANGED
@@ -6,9 +6,7 @@ concurrency:
|
|
6
6
|
|
7
7
|
on:
|
8
8
|
pull_request:
|
9
|
-
branches: [
|
10
|
-
push:
|
11
|
-
branches: [ main, master ]
|
9
|
+
branches: [ master ]
|
12
10
|
schedule:
|
13
11
|
- cron: '0 1 * * *'
|
14
12
|
|
@@ -48,7 +46,7 @@ jobs:
|
|
48
46
|
- name: Remove platform-specific ffi entries for Ruby previews
|
49
47
|
if: contains(matrix.ruby, '3.5')
|
50
48
|
run: |
|
51
|
-
|
49
|
+
sed -i '/^\s*ffi (.*-.*)$/d' Gemfile.lock
|
52
50
|
|
53
51
|
- name: Set up Ruby
|
54
52
|
uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
|
@@ -56,6 +54,7 @@ jobs:
|
|
56
54
|
ruby-version: ${{matrix.ruby}}
|
57
55
|
bundler-cache: true
|
58
56
|
bundler: 'latest'
|
57
|
+
self-hosted: false
|
59
58
|
|
60
59
|
- name: Run Kafka with Docker Compose
|
61
60
|
run: |
|
@@ -91,6 +90,7 @@ jobs:
|
|
91
90
|
|
92
91
|
diffend:
|
93
92
|
timeout-minutes: 5
|
93
|
+
|
94
94
|
runs-on: ubuntu-latest
|
95
95
|
strategy:
|
96
96
|
fail-fast: false
|
@@ -102,6 +102,8 @@ jobs:
|
|
102
102
|
uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
|
103
103
|
with:
|
104
104
|
ruby-version: 3.4
|
105
|
+
self-hosted: false
|
106
|
+
|
105
107
|
- name: Install latest bundler
|
106
108
|
run: gem install bundler --no-document
|
107
109
|
- name: Install Diffend plugin
|
@@ -132,3 +134,20 @@ jobs:
|
|
132
134
|
fi
|
133
135
|
- name: Run Coditsu
|
134
136
|
run: ./coditsu_script.sh
|
137
|
+
|
138
|
+
ci-success:
|
139
|
+
name: CI Success
|
140
|
+
runs-on: ubuntu-latest
|
141
|
+
if: always()
|
142
|
+
needs:
|
143
|
+
- diffend
|
144
|
+
- coditsu
|
145
|
+
- specs
|
146
|
+
steps:
|
147
|
+
- name: Check all jobs passed
|
148
|
+
if: |
|
149
|
+
contains(needs.*.result, 'failure') ||
|
150
|
+
contains(needs.*.result, 'cancelled') ||
|
151
|
+
contains(needs.*.result, 'skipped')
|
152
|
+
run: exit 1
|
153
|
+
- run: echo "All CI checks passed!"
|
@@ -8,7 +8,14 @@ on:
|
|
8
8
|
|
9
9
|
jobs:
|
10
10
|
trigger-wiki-refresh:
|
11
|
-
runs-on:
|
11
|
+
runs-on: >-
|
12
|
+
${{
|
13
|
+
(github.event_name != 'pull_request' ||
|
14
|
+
github.event.pull_request.head.repo.full_name == github.repository)
|
15
|
+
&& fromJSON('["self-hosted", "linux", "x64", "qemu"]')
|
16
|
+
|| 'ubuntu-latest'
|
17
|
+
}}
|
18
|
+
|
12
19
|
environment: wiki-trigger
|
13
20
|
if: github.repository_owner == 'karafka'
|
14
21
|
steps:
|
@@ -5,7 +5,14 @@ on:
|
|
5
5
|
- '.github/workflows/**'
|
6
6
|
jobs:
|
7
7
|
verify_action_pins:
|
8
|
-
runs-on:
|
8
|
+
runs-on: >-
|
9
|
+
${{
|
10
|
+
(github.event_name != 'pull_request' ||
|
11
|
+
github.event.pull_request.head.repo.full_name == github.repository)
|
12
|
+
&& fromJSON('["self-hosted", "linux", "x64", "qemu"]')
|
13
|
+
|| 'ubuntu-latest'
|
14
|
+
}}
|
15
|
+
|
9
16
|
steps:
|
10
17
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
11
18
|
- name: Check SHA pins
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# WaterDrop changelog
|
2
2
|
|
3
|
+
## 2.8.7 (2025-09-02)
|
4
|
+
- [Enhancement] Disable Nagle algorithm by default (improves latency / aligned with librdkafka)
|
5
|
+
- [Change] Normalize how libs and dependencies are required (no functional change for the end user)
|
6
|
+
|
3
7
|
## 2.8.6 (2025-08-18)
|
4
8
|
- [Feature] Add `idle_disconnect_timeout` config option to automatically disconnect idle producers after a configurable timeout period.
|
5
9
|
- [Feature] Add support for [async](https://github.com/socketry/async) gems ecosystem with proper fiber yielding during blocking operations.
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
waterdrop (2.8.
|
4
|
+
waterdrop (2.8.7)
|
5
5
|
karafka-core (>= 2.4.9, < 3.0.0)
|
6
6
|
karafka-rdkafka (>= 0.20.0)
|
7
7
|
zeitwerk (~> 2.3)
|
@@ -23,26 +23,37 @@ GEM
|
|
23
23
|
ffi (1.17.2-x86_64-darwin)
|
24
24
|
ffi (1.17.2-x86_64-linux-gnu)
|
25
25
|
ffi (1.17.2-x86_64-linux-musl)
|
26
|
-
|
27
|
-
|
26
|
+
json (2.13.2)
|
27
|
+
karafka-core (2.5.6)
|
28
|
+
karafka-rdkafka (>= 0.20.0)
|
28
29
|
logger (>= 1.6.0)
|
29
|
-
karafka-rdkafka (0.21.0
|
30
|
+
karafka-rdkafka (0.21.0)
|
31
|
+
ffi (~> 1.15)
|
32
|
+
json (> 2.0)
|
33
|
+
logger
|
34
|
+
mini_portile2 (~> 2.6)
|
35
|
+
rake (> 12)
|
36
|
+
karafka-rdkafka (0.21.0-aarch64-linux-gnu)
|
30
37
|
ffi (~> 1.15)
|
38
|
+
json (> 2.0)
|
31
39
|
logger
|
32
40
|
mini_portile2 (~> 2.6)
|
33
41
|
rake (> 12)
|
34
|
-
karafka-rdkafka (0.21.0
|
42
|
+
karafka-rdkafka (0.21.0-arm64-darwin)
|
35
43
|
ffi (~> 1.15)
|
44
|
+
json (> 2.0)
|
36
45
|
logger
|
37
46
|
mini_portile2 (~> 2.6)
|
38
47
|
rake (> 12)
|
39
|
-
karafka-rdkafka (0.21.0
|
48
|
+
karafka-rdkafka (0.21.0-x86_64-linux-gnu)
|
40
49
|
ffi (~> 1.15)
|
50
|
+
json (> 2.0)
|
41
51
|
logger
|
42
52
|
mini_portile2 (~> 2.6)
|
43
53
|
rake (> 12)
|
44
|
-
karafka-rdkafka (0.21.0
|
54
|
+
karafka-rdkafka (0.21.0-x86_64-linux-musl)
|
45
55
|
ffi (~> 1.15)
|
56
|
+
json (> 2.0)
|
46
57
|
logger
|
47
58
|
mini_portile2 (~> 2.6)
|
48
59
|
rake (> 12)
|
data/bin/verify_kafka_warnings
CHANGED
data/lib/waterdrop/config.rb
CHANGED
@@ -17,7 +17,10 @@ module WaterDrop
|
|
17
17
|
# sync delivery
|
18
18
|
'message.timeout.ms': 50_000,
|
19
19
|
# Must be more or equal to `message.timeout.ms` defaults
|
20
|
-
'transaction.timeout.ms': 55_000
|
20
|
+
'transaction.timeout.ms': 55_000,
|
21
|
+
# Lowers latency. Default in newer librdkafka but we want to make sure it is shipped to
|
22
|
+
# users despite what librdkafka they run on
|
23
|
+
'socket.nagle.disable': true
|
21
24
|
}.freeze
|
22
25
|
|
23
26
|
private_constant :KAFKA_DEFAULTS
|
data/lib/waterdrop/version.rb
CHANGED
data/lib/waterdrop.rb
CHANGED
@@ -1,16 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# External components
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
karafka-core
|
12
|
-
pathname
|
13
|
-
].each { |lib| require lib }
|
4
|
+
require 'delegate'
|
5
|
+
require 'forwardable'
|
6
|
+
require 'json'
|
7
|
+
require 'zeitwerk'
|
8
|
+
require 'securerandom'
|
9
|
+
require 'karafka-core'
|
10
|
+
require 'pathname'
|
14
11
|
|
15
12
|
# WaterDrop library
|
16
13
|
module WaterDrop
|