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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 96b89ee79adb2be90c97e5e87f79d79ad86ceb7d3652c0220d32030e605afadf
4
- data.tar.gz: fbdc38cc1c913e3dd433fa4448848f9f3f3799552d2c18741dd207849f59750d
3
+ metadata.gz: c6fd5bbc4f935b3d55794ad4f62970ab9feab3d4ebd100f9394c1bb456b8a9b5
4
+ data.tar.gz: 00ab23a92637285766a29741324b65422b77aba3522aa812b0f72350e3061585
5
5
  SHA512:
6
- metadata.gz: 253cdaf4f5ba5e0f92e723d0a8214dd36b05a9b11986c005a63399bce38f193a90922281cf150f434ea4f0aaa6e6950dbb02a7df2e4134e0508ed474b0a68c04
7
- data.tar.gz: 07043a71104f7a818dcb0a4261ee559b62aadb37ad28696ae5ca6d8c0c66c20de5f7d7ad3ab7bfd68ef0b9f91b1f55d67cc1319e37c009a0023beea6fa49905d
6
+ metadata.gz: 0a41a342c8b16e167f1292ea6068647ac100f21f7f632342280a0bf69debcee3e6929f070e63b0fde2c28b85454edc6845d66895376a953c3ccaad48873646df
7
+ data.tar.gz: 89956ae428a553f91d91a8064954dea2095cb81457fd78f1565e31ec47e31799b823942931a08f1e6f2d0a7f04b7f730d5d1856fe01fd4de9a57055b5e301360
@@ -6,9 +6,7 @@ concurrency:
6
6
 
7
7
  on:
8
8
  pull_request:
9
- branches: [ main, master ]
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
- ruby -i -ne 'puts $_ unless /^\s*ffi \(.*-.*\)$/' Gemfile.lock
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: ubuntu-latest
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: ubuntu-latest
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.6)
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
- karafka-core (2.5.2)
27
- karafka-rdkafka (>= 0.19.2, < 0.21.0)
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.rc1)
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.rc1-arm64-darwin)
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.rc1-x86_64-linux-gnu)
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.rc1-x86_64-linux-musl)
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)
@@ -9,7 +9,7 @@ allowed_patterns=(
9
9
  )
10
10
 
11
11
  # Get all warnings
12
- warnings=$(docker logs --since=0 kafka | grep WARN)
12
+ warnings=$(docker logs --since=0 kafka | grep "] WARN ")
13
13
  exit_code=0
14
14
 
15
15
  while IFS= read -r line; do
@@ -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
@@ -3,5 +3,5 @@
3
3
  # WaterDrop library
4
4
  module WaterDrop
5
5
  # Current WaterDrop version
6
- VERSION = '2.8.6'
6
+ VERSION = '2.8.7'
7
7
  end
data/lib/waterdrop.rb CHANGED
@@ -1,16 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # External components
4
- # delegate should be removed because we don't need it, we just add it because of ruby-kafka
5
- %w[
6
- delegate
7
- forwardable
8
- json
9
- zeitwerk
10
- securerandom
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: waterdrop
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.6
4
+ version: 2.8.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld