waterdrop 2.6.14 → 2.8.2

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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +43 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. data/.github/workflows/ci.yml +11 -19
  6. data/.ruby-version +1 -1
  7. data/CHANGELOG.md +256 -0
  8. data/Gemfile +1 -0
  9. data/Gemfile.lock +35 -31
  10. data/LICENSE +17 -0
  11. data/README.md +4 -4
  12. data/bin/verify_kafka_warnings +31 -0
  13. data/certs/cert.pem +26 -0
  14. data/config/locales/errors.yml +17 -3
  15. data/docker-compose.yml +1 -3
  16. data/lib/waterdrop/clients/rdkafka.rb +34 -4
  17. data/lib/waterdrop/config.rb +27 -12
  18. data/lib/waterdrop/contracts/config.rb +12 -1
  19. data/lib/waterdrop/contracts/variant.rb +107 -0
  20. data/lib/waterdrop/errors.rb +16 -0
  21. data/lib/waterdrop/instrumentation/callbacks/delivery.rb +11 -0
  22. data/lib/waterdrop/instrumentation/callbacks/error.rb +11 -0
  23. data/lib/waterdrop/instrumentation/callbacks/oauthbearer_token_refresh.rb +49 -0
  24. data/lib/waterdrop/instrumentation/callbacks/statistics.rb +11 -0
  25. data/lib/waterdrop/instrumentation/logger_listener.rb +11 -3
  26. data/lib/waterdrop/instrumentation/notifications.rb +3 -0
  27. data/lib/waterdrop/instrumentation/vendors/datadog/metrics_listener.rb +10 -1
  28. data/lib/waterdrop/producer/buffer.rb +0 -6
  29. data/lib/waterdrop/producer/sync.rb +33 -9
  30. data/lib/waterdrop/producer/transactions.rb +98 -19
  31. data/lib/waterdrop/producer/variant.rb +109 -0
  32. data/lib/waterdrop/producer.rb +155 -92
  33. data/lib/waterdrop/version.rb +1 -1
  34. data/lib/waterdrop.rb +1 -0
  35. data/waterdrop.gemspec +7 -4
  36. data.tar.gz.sig +0 -0
  37. metadata +51 -33
  38. metadata.gz.sig +0 -0
  39. data/MIT-LICENSE +0 -18
  40. data/certs/cert_chain.pem +0 -26
data/waterdrop.gemspec CHANGED
@@ -14,18 +14,21 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = 'https://karafka.io'
15
15
  spec.summary = 'Kafka messaging made easy!'
16
16
  spec.description = spec.summary
17
- spec.license = 'MIT'
17
+ spec.licenses = %w[LGPL-3.0-only Commercial]
18
18
 
19
- spec.add_dependency 'karafka-core', '>= 2.2.3', '< 3.0.0'
19
+ spec.add_dependency 'karafka-core', '>= 2.4.3', '< 3.0.0'
20
+ spec.add_dependency 'karafka-rdkafka', '>= 0.17.5'
20
21
  spec.add_dependency 'zeitwerk', '~> 2.3'
21
22
 
23
+ spec.required_ruby_version = '>= 3.1.0'
24
+
22
25
  if $PROGRAM_NAME.end_with?('gem')
23
26
  spec.signing_key = File.expand_path('~/.ssh/gem-private_key.pem')
24
27
  end
25
28
 
26
- spec.cert_chain = %w[certs/cert_chain.pem]
29
+ spec.cert_chain = %w[certs/cert.pem]
27
30
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec)/}) }
28
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
31
+ spec.executables = []
29
32
  spec.require_paths = %w[lib]
30
33
 
31
34
  spec.metadata = {
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,41 +1,40 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: waterdrop
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.14
4
+ version: 2.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain:
11
10
  - |
12
11
  -----BEGIN CERTIFICATE-----
13
12
  MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MRAwDgYDVQQDDAdjb250
14
13
  YWN0MRcwFQYKCZImiZPyLGQBGRYHa2FyYWZrYTESMBAGCgmSJomT8ixkARkWAmlv
15
- MB4XDTIzMDgyMTA3MjU1NFoXDTI0MDgyMDA3MjU1NFowPzEQMA4GA1UEAwwHY29u
14
+ MB4XDTI0MDgyMzEwMTkyMFoXDTQ5MDgxNzEwMTkyMFowPzEQMA4GA1UEAwwHY29u
16
15
  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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- kp1OFnEq4GG9sON4glRldkwzi/f/fGcZmo5fm3d+0ZdNgwIDAQABo3cwdTAJBgNV
26
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
37
36
  -----END CERTIFICATE-----
38
- date: 2024-02-06 00:00:00.000000000 Z
37
+ date: 2025-02-13 00:00:00.000000000 Z
39
38
  dependencies:
40
39
  - !ruby/object:Gem::Dependency
41
40
  name: karafka-core
@@ -43,7 +42,7 @@ dependencies:
43
42
  requirements:
44
43
  - - ">="
45
44
  - !ruby/object:Gem::Version
46
- version: 2.2.3
45
+ version: 2.4.3
47
46
  - - "<"
48
47
  - !ruby/object:Gem::Version
49
48
  version: 3.0.0
@@ -53,10 +52,24 @@ dependencies:
53
52
  requirements:
54
53
  - - ">="
55
54
  - !ruby/object:Gem::Version
56
- version: 2.2.3
55
+ version: 2.4.3
57
56
  - - "<"
58
57
  - !ruby/object:Gem::Version
59
58
  version: 3.0.0
59
+ - !ruby/object:Gem::Dependency
60
+ name: karafka-rdkafka
61
+ requirement: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: 0.17.5
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 0.17.5
60
73
  - !ruby/object:Gem::Dependency
61
74
  name: zeitwerk
62
75
  requirement: !ruby/object:Gem::Requirement
@@ -81,6 +94,8 @@ files:
81
94
  - ".coditsu/ci.yml"
82
95
  - ".diffend.yml"
83
96
  - ".github/FUNDING.yml"
97
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
98
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
84
99
  - ".github/workflows/ci.yml"
85
100
  - ".gitignore"
86
101
  - ".rspec"
@@ -89,9 +104,10 @@ files:
89
104
  - CHANGELOG.md
90
105
  - Gemfile
91
106
  - Gemfile.lock
92
- - MIT-LICENSE
107
+ - LICENSE
93
108
  - README.md
94
- - certs/cert_chain.pem
109
+ - bin/verify_kafka_warnings
110
+ - certs/cert.pem
95
111
  - config/locales/errors.yml
96
112
  - docker-compose.yml
97
113
  - lib/waterdrop.rb
@@ -103,10 +119,12 @@ files:
103
119
  - lib/waterdrop/contracts/config.rb
104
120
  - lib/waterdrop/contracts/message.rb
105
121
  - lib/waterdrop/contracts/transactional_offset.rb
122
+ - lib/waterdrop/contracts/variant.rb
106
123
  - lib/waterdrop/errors.rb
107
124
  - lib/waterdrop/helpers/counter.rb
108
125
  - lib/waterdrop/instrumentation/callbacks/delivery.rb
109
126
  - lib/waterdrop/instrumentation/callbacks/error.rb
127
+ - lib/waterdrop/instrumentation/callbacks/oauthbearer_token_refresh.rb
110
128
  - lib/waterdrop/instrumentation/callbacks/statistics.rb
111
129
  - lib/waterdrop/instrumentation/logger_listener.rb
112
130
  - lib/waterdrop/instrumentation/monitor.rb
@@ -121,13 +139,15 @@ files:
121
139
  - lib/waterdrop/producer/status.rb
122
140
  - lib/waterdrop/producer/sync.rb
123
141
  - lib/waterdrop/producer/transactions.rb
142
+ - lib/waterdrop/producer/variant.rb
124
143
  - lib/waterdrop/version.rb
125
144
  - log/.gitkeep
126
145
  - renovate.json
127
146
  - waterdrop.gemspec
128
147
  homepage: https://karafka.io
129
148
  licenses:
130
- - MIT
149
+ - LGPL-3.0-only
150
+ - Commercial
131
151
  metadata:
132
152
  funding_uri: https://karafka.io/#become-pro
133
153
  homepage_uri: https://karafka.io
@@ -136,7 +156,6 @@ metadata:
136
156
  source_code_uri: https://github.com/karafka/waterdrop
137
157
  documentation_uri: https://karafka.io/docs/#waterdrop
138
158
  rubygems_mfa_required: 'true'
139
- post_install_message:
140
159
  rdoc_options: []
141
160
  require_paths:
142
161
  - lib
@@ -144,15 +163,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
163
  requirements:
145
164
  - - ">="
146
165
  - !ruby/object:Gem::Version
147
- version: '0'
166
+ version: 3.1.0
148
167
  required_rubygems_version: !ruby/object:Gem::Requirement
149
168
  requirements:
150
169
  - - ">="
151
170
  - !ruby/object:Gem::Version
152
171
  version: '0'
153
172
  requirements: []
154
- rubygems_version: 3.5.3
155
- signing_key:
173
+ rubygems_version: 3.6.2
156
174
  specification_version: 4
157
175
  summary: Kafka messaging made easy!
158
176
  test_files: []
metadata.gz.sig CHANGED
Binary file
data/MIT-LICENSE DELETED
@@ -1,18 +0,0 @@
1
- Permission is hereby granted, free of charge, to any person obtaining
2
- a copy of this software and associated documentation files (the
3
- "Software"), to deal in the Software without restriction, including
4
- without limitation the rights to use, copy, modify, merge, publish,
5
- distribute, sublicense, and/or sell copies of the Software, and to
6
- permit persons to whom the Software is furnished to do so, subject to
7
- the following conditions:
8
-
9
- The above copyright notice and this permission notice shall be
10
- included in all copies or substantial portions of the Software.
11
-
12
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
13
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
16
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
17
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
18
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/certs/cert_chain.pem DELETED
@@ -1,26 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MRAwDgYDVQQDDAdjb250
3
- YWN0MRcwFQYKCZImiZPyLGQBGRYHa2FyYWZrYTESMBAGCgmSJomT8ixkARkWAmlv
4
- MB4XDTIzMDgyMTA3MjU1NFoXDTI0MDgyMDA3MjU1NFowPzEQMA4GA1UEAwwHY29u
5
- dGFjdDEXMBUGCgmSJomT8ixkARkWB2thcmFma2ExEjAQBgoJkiaJk/IsZAEZFgJp
6
- bzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAOuZpyQKEwsTG9plLat7
7
- 8bUaNuNBEnouTsNMr6X+XTgvyrAxTuocdsyP1sNCjdS1B8RiiDH1/Nt9qpvlBWon
8
- sdJ1SYhaWNVfqiYStTDnCx3PRMmHRdD4KqUWKpN6VpZ1O/Zu+9Mw0COmvXgZuuO9
9
- wMSJkXRo6dTCfMedLAIxjMeBIxtoLR2e6Jm6MR8+8WYYVWrO9kSOOt5eKQLBY7aK
10
- b/Dc40EcJKPg3Z30Pia1M9ZyRlb6SOj6SKpHRqc7vbVQxjEw6Jjal1lZ49m3YZMd
11
- ArMAs9lQZNdSw5/UX6HWWURLowg6k10RnhTUtYyzO9BFev0JFJftHnmuk8vtb+SD
12
- 5VPmjFXg2VOcw0B7FtG75Vackk8QKfgVe3nSPhVpew2CSPlbJzH80wChbr19+e3+
13
- YGr1tOiaJrL6c+PNmb0F31NXMKpj/r+n15HwlTMRxQrzFcgjBlxf2XFGnPQXHhBm
14
- kp1OFnEq4GG9sON4glRldkwzi/f/fGcZmo5fm3d+0ZdNgwIDAQABo3cwdTAJBgNV
15
- HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUPVH5+dLA80A1kJ2Uz5iGwfOa
16
- 1+swHQYDVR0RBBYwFIESY29udGFjdEBrYXJhZmthLmlvMB0GA1UdEgQWMBSBEmNv
17
- bnRhY3RAa2FyYWZrYS5pbzANBgkqhkiG9w0BAQsFAAOCAYEAnpa0jcN7JzREHMTQ
18
- bfZ+xcvlrzuROMY6A3zIZmQgbnoZZNuX4cMRrT1p1HuwXpxdpHPw7dDjYqWw3+1h
19
- 3mXLeMuk7amjQpYoSWU/OIZMhIsARra22UN8qkkUlUj3AwTaChVKN/bPJOM2DzfU
20
- kz9vUgLeYYFfQbZqeI6SsM7ltilRV4W8D9yNUQQvOxCFxtLOetJ00fC/E7zMUzbK
21
- IBwYFQYsbI6XQzgAIPW6nGSYKgRhkfpmquXSNKZRIQ4V6bFrufa+DzD0bt2ZA3ah
22
- fMmJguyb5L2Gf1zpDXzFSPMG7YQFLzwYz1zZZvOU7/UCpQsHpID/YxqDp4+Dgb+Y
23
- qma0whX8UG/gXFV2pYWpYOfpatvahwi+A1TwPQsuZwkkhi1OyF1At3RY+hjSXyav
24
- AnG1dJU+yL2BK7vaVytLTstJME5mepSZ46qqIJXMuWob/YPDmVaBF39TDSG9e34s
25
- msG3BiCqgOgHAnL23+CN3Rt8MsuRfEtoTKpJVcCfoEoNHOkc
26
- -----END CERTIFICATE-----