waterdrop 1.3.4 → 1.4.4

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: be82179c0912125f1c5e03255a9990f6f6de8e11af94b84f9c7d57f1a07c8b82
4
- data.tar.gz: 422b73c67f3166130b24839f773b0f6ab8e3349225a0cb75b1c1551fe70cab4b
3
+ metadata.gz: d805514cfb3af2c6b95b391eb5a04380146e820ac58d6feb917c3f05de38e880
4
+ data.tar.gz: 87812de0c350f9dccd07e7547a8a894fca18b406b18fff29531155c8cbdbba67
5
5
  SHA512:
6
- metadata.gz: 19563b33071dbcca24d81454f5b838dcf1e2d973a4e464a1f28aecec814bc3bc6f24d2df685aacef5ab76b52247ba157e35687cff970008ab70f9ac66eba0847
7
- data.tar.gz: 3d671e633fe1f9647cb55688943749e896dfd6b5cb015a70d735d10bace38daf30d66d0ae1d628368efeaae59c3074a4059d9e06eb5e040af09bf2a9c0d82534
6
+ metadata.gz: fa11c319429bdf23ba21ee9b75f15741f58eec5bb957cc02ee4fc01e99d77c3fdf10a14d10740311cc3e612d3a00072406e1bab1d196266764cf5459d1985ef0
7
+ data.tar.gz: d0ef1f7f6fc8f71fa913755bc766b29c41f246cbacbb2946fec646eaa7003865b2be0a2d0b03a64ec9bb9b5e1d9709203ffad03e3f430408199ae8b1610d7db2
checksums.yaml.gz.sig CHANGED
Binary file
data/.diffend.yml ADDED
@@ -0,0 +1,3 @@
1
+ project_id: 'ee590bc9-f375-4832-ac8e-beb174b49aa5'
2
+ shareable_id: '1325b111-b957-4fd8-bd6f-fead41e06034'
3
+ shareable_key: 'd29c6230-8bf6-479b-83ff-98f374d3466e'
@@ -0,0 +1,75 @@
1
+ name: ci
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ schedule:
7
+ - cron: '0 1 * * *'
8
+
9
+ jobs:
10
+ specs:
11
+ runs-on: ubuntu-latest
12
+ needs: diffend
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ ruby:
17
+ - '3.0'
18
+ - '2.7'
19
+ - '2.6'
20
+ - 'jruby-head'
21
+ include:
22
+ - ruby: '3.0'
23
+ coverage: 'true'
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+ - name: Install package dependencies
27
+ run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS"
28
+ - name: Set up Ruby
29
+ uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: ${{matrix.ruby}}
32
+ - name: Install latest bundler
33
+ run: |
34
+ gem install bundler --no-document
35
+ bundle config set without 'tools benchmarks docs'
36
+ - name: Bundle install
37
+ run: |
38
+ bundle config set without development
39
+ bundle install --jobs 4 --retry 3
40
+ - name: Run Kafka with docker-compose
41
+ run: docker-compose up -d
42
+ - name: Run all tests
43
+ env:
44
+ GITHUB_COVERAGE: ${{matrix.coverage}}
45
+ run: bundle exec rspec
46
+
47
+ diffend:
48
+ runs-on: ubuntu-latest
49
+ strategy:
50
+ fail-fast: false
51
+ steps:
52
+ - uses: actions/checkout@v2
53
+ with:
54
+ fetch-depth: 0
55
+ - name: Set up Ruby
56
+ uses: ruby/setup-ruby@v1
57
+ with:
58
+ ruby-version: 3.0
59
+ - name: Install latest bundler
60
+ run: gem install bundler --no-document
61
+ - name: Install Diffend plugin
62
+ run: bundle plugin install diffend
63
+ - name: Bundle Secure
64
+ run: bundle secure
65
+
66
+ coditsu:
67
+ runs-on: ubuntu-latest
68
+ strategy:
69
+ fail-fast: false
70
+ steps:
71
+ - uses: actions/checkout@v2
72
+ with:
73
+ fetch-depth: 0
74
+ - name: Run Coditsu
75
+ run: \curl -sSL https://api.coditsu.io/run/ci | bash
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.7.0
1
+ 3.0.2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # WaterDrop changelog
2
2
 
3
+ ## 1.4.4 (2021-10-30)
4
+ - minimum version of ruby-kafka is now 1.3
5
+ - update gems requirements in the gemspec (nijikon)
6
+
7
+ ## 1.4.3 (2021-09-29)
8
+ - Remove Ruby 2.5 support and update minimum Ruby requirement to 2.6
9
+ - fix `dry-configurable` deprecation warnings for default value as positional argument
10
+
11
+ ## 1.4.2 (2021-03-30)
12
+ - Additional 3.0 fixes (ojab)
13
+
14
+ ## 1.4.1 (2021-03-23)
15
+ - Support for Ruby 3.0
16
+
17
+ ## 1.4.0 (2020-08-25)
18
+ - Release to match Karafka 1.4 versioning.
19
+
3
20
  ## 1.3.4 (2020-02-17)
4
21
  - Support for new `dry-configurable`
5
22
 
data/Gemfile.lock CHANGED
@@ -1,95 +1,92 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- waterdrop (1.3.4)
4
+ waterdrop (1.4.4)
5
5
  delivery_boy (>= 0.2, < 2.x)
6
- dry-configurable (~> 0.8)
7
- dry-monitor (~> 0.3)
8
- dry-validation (~> 1.2)
9
- ruby-kafka (>= 0.7.8)
10
- zeitwerk (~> 2.1)
6
+ dry-configurable (~> 0.13)
7
+ dry-monitor (~> 0.5)
8
+ dry-validation (~> 1.7)
9
+ ruby-kafka (>= 1.3.0)
10
+ zeitwerk (~> 2.4)
11
11
 
12
12
  GEM
13
13
  remote: https://rubygems.org/
14
14
  specs:
15
- concurrent-ruby (1.1.6)
16
- delivery_boy (1.0.0)
17
- king_konf (~> 0.3)
18
- ruby-kafka (~> 0.7.8)
19
- diff-lcs (1.3)
20
- digest-crc (0.4.1)
21
- docile (1.3.2)
22
- dry-configurable (0.11.0)
15
+ concurrent-ruby (1.1.9)
16
+ delivery_boy (1.1.0)
17
+ king_konf (~> 1.0)
18
+ ruby-kafka (~> 1.0)
19
+ diff-lcs (1.4.4)
20
+ digest-crc (0.6.4)
21
+ rake (>= 12.0.0, < 14.0.0)
22
+ docile (1.4.0)
23
+ dry-configurable (0.13.0)
23
24
  concurrent-ruby (~> 1.0)
24
- dry-core (~> 0.4, >= 0.4.7)
25
- dry-equalizer (~> 0.2)
26
- dry-container (0.7.2)
25
+ dry-core (~> 0.6)
26
+ dry-container (0.9.0)
27
27
  concurrent-ruby (~> 1.0)
28
- dry-configurable (~> 0.1, >= 0.1.3)
29
- dry-core (0.4.9)
28
+ dry-configurable (~> 0.13, >= 0.13.0)
29
+ dry-core (0.7.1)
30
30
  concurrent-ruby (~> 1.0)
31
- dry-equalizer (0.3.0)
32
- dry-events (0.2.0)
31
+ dry-events (0.3.0)
33
32
  concurrent-ruby (~> 1.0)
34
- dry-core (~> 0.4)
35
- dry-equalizer (~> 0.2)
36
- dry-inflector (0.2.0)
37
- dry-initializer (3.0.3)
38
- dry-logic (1.0.6)
33
+ dry-core (~> 0.5, >= 0.5)
34
+ dry-inflector (0.2.1)
35
+ dry-initializer (3.0.4)
36
+ dry-logic (1.2.0)
39
37
  concurrent-ruby (~> 1.0)
40
- dry-core (~> 0.2)
41
- dry-equalizer (~> 0.2)
42
- dry-monitor (0.3.1)
43
- dry-configurable (~> 0.5)
44
- dry-core (~> 0.4)
45
- dry-equalizer (~> 0.2)
46
- dry-events (~> 0.1)
47
- dry-schema (1.4.3)
38
+ dry-core (~> 0.5, >= 0.5)
39
+ dry-monitor (0.5.0)
40
+ dry-configurable (~> 0.13, >= 0.13.0)
41
+ dry-core (~> 0.5, >= 0.5)
42
+ dry-events (~> 0.2)
43
+ dry-schema (1.8.0)
48
44
  concurrent-ruby (~> 1.0)
49
- dry-configurable (~> 0.8, >= 0.8.3)
50
- dry-core (~> 0.4)
51
- dry-equalizer (~> 0.2)
45
+ dry-configurable (~> 0.13, >= 0.13.0)
46
+ dry-core (~> 0.5, >= 0.5)
52
47
  dry-initializer (~> 3.0)
53
48
  dry-logic (~> 1.0)
54
- dry-types (~> 1.2)
55
- dry-types (1.3.1)
49
+ dry-types (~> 1.5)
50
+ dry-types (1.5.1)
56
51
  concurrent-ruby (~> 1.0)
57
52
  dry-container (~> 0.3)
58
- dry-core (~> 0.4, >= 0.4.4)
59
- dry-equalizer (~> 0.3)
53
+ dry-core (~> 0.5, >= 0.5)
60
54
  dry-inflector (~> 0.1, >= 0.1.2)
61
55
  dry-logic (~> 1.0, >= 1.0.2)
62
- dry-validation (1.4.2)
56
+ dry-validation (1.7.0)
63
57
  concurrent-ruby (~> 1.0)
64
58
  dry-container (~> 0.7, >= 0.7.1)
65
- dry-core (~> 0.4)
66
- dry-equalizer (~> 0.2)
59
+ dry-core (~> 0.5, >= 0.5)
67
60
  dry-initializer (~> 3.0)
68
- dry-schema (~> 1.4, >= 1.4.3)
69
- king_konf (0.3.7)
70
- rspec (3.9.0)
71
- rspec-core (~> 3.9.0)
72
- rspec-expectations (~> 3.9.0)
73
- rspec-mocks (~> 3.9.0)
74
- rspec-core (3.9.1)
75
- rspec-support (~> 3.9.1)
76
- rspec-expectations (3.9.0)
61
+ dry-schema (~> 1.8, >= 1.8.0)
62
+ king_konf (1.0.0)
63
+ rake (13.0.6)
64
+ rspec (3.10.0)
65
+ rspec-core (~> 3.10.0)
66
+ rspec-expectations (~> 3.10.0)
67
+ rspec-mocks (~> 3.10.0)
68
+ rspec-core (3.10.1)
69
+ rspec-support (~> 3.10.0)
70
+ rspec-expectations (3.10.1)
77
71
  diff-lcs (>= 1.2.0, < 2.0)
78
- rspec-support (~> 3.9.0)
79
- rspec-mocks (3.9.1)
72
+ rspec-support (~> 3.10.0)
73
+ rspec-mocks (3.10.2)
80
74
  diff-lcs (>= 1.2.0, < 2.0)
81
- rspec-support (~> 3.9.0)
82
- rspec-support (3.9.2)
83
- ruby-kafka (0.7.10)
75
+ rspec-support (~> 3.10.0)
76
+ rspec-support (3.10.2)
77
+ ruby-kafka (1.4.0)
84
78
  digest-crc
85
- simplecov (0.18.2)
79
+ simplecov (0.21.2)
86
80
  docile (~> 1.1)
87
81
  simplecov-html (~> 0.11)
88
- simplecov-html (0.12.0)
89
- zeitwerk (2.2.2)
82
+ simplecov_json_formatter (~> 0.1)
83
+ simplecov-html (0.12.3)
84
+ simplecov_json_formatter (0.1.3)
85
+ zeitwerk (2.5.1)
90
86
 
91
87
  PLATFORMS
92
- ruby
88
+ x86_64-darwin
89
+ x86_64-linux
93
90
 
94
91
  DEPENDENCIES
95
92
  rspec
@@ -97,4 +94,4 @@ DEPENDENCIES
97
94
  waterdrop!
98
95
 
99
96
  BUNDLED WITH
100
- 2.1.4
97
+ 2.2.29
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # WaterDrop
2
2
 
3
3
  [![Build Status](https://travis-ci.org/karafka/waterdrop.svg)](https://travis-ci.org/karafka/waterdrop)
4
- [![Join the chat at https://gitter.im/karafka/karafka](https://badges.gitter.im/karafka/karafka.svg)](https://gitter.im/karafka/karafka?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
4
+ [![Join the chat at https://slack.karafka.io](https://raw.githubusercontent.com/karafka/misc/master/slack.svg)](https://slack.karafka.io)
5
5
 
6
6
  Gem used to send messages to Kafka in an easy way with an extra validation layer. It is a part of the [Karafka](https://github.com/karafka/karafka) ecosystem.
7
7
 
@@ -116,12 +116,8 @@ Keep in mind, that message you want to send should be either binary or stringifi
116
116
 
117
117
  ## Note on contributions
118
118
 
119
- First, thank you for considering contributing to WaterDrop! It's people like you that make the open source community such a great community!
119
+ First, thank you for considering contributing to the Karafka ecosystem! It's people like you that make the open source community such a great community!
120
120
 
121
- Each pull request must pass all the RSpec specs and meet our quality requirements.
121
+ Each pull request must pass all the RSpec specs, integration tests and meet our quality requirements.
122
122
 
123
- To check if everything is as it should be, we use [Coditsu](https://coditsu.io) that combines multiple linters and code analyzers for both code and documentation. Once you're done with your changes, submit a pull request.
124
-
125
- Coditsu will automatically check your work against our quality standards. You can find your commit check results on the [builds page](https://app.coditsu.io/karafka/repositories/waterdrop/builds/commit_builds) of WaterDrop repository.
126
-
127
- [![coditsu](https://coditsu.io/assets/quality_bar.svg)](https://app.coditsu.io/karafka/repositories/waterdrop/builds/commit_builds)
123
+ Fork it, update and wait for the Github Actions results.
data/certs/mensfeld.pem CHANGED
@@ -1,25 +1,25 @@
1
1
  -----BEGIN CERTIFICATE-----
2
2
  MIIEODCCAqCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhtYWNp
3
- ZWovREM9bWVuc2ZlbGQvREM9cGwwHhcNMTkwNzMwMTQ1NDU0WhcNMjAwNzI5MTQ1
4
- NDU0WjAjMSEwHwYDVQQDDBhtYWNpZWovREM9bWVuc2ZlbGQvREM9cGwwggGiMA0G
5
- CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC9fCwtaHZG2SyyNXiH8r0QbJQx/xxl
6
- dkvwWz9QGJO+O8rEx20FB1Ab+MVkfOscwIv5jWpmk1U9whzDPl1uFtIbgu+sk+Zb
7
- uQlZyK/DPN6c+/BbBL+RryTBRyvkPLoCVwm7uxc/JZ1n4AI6eF4cCZ2ieZ9QgQbU
8
- MQs2QPqs9hT50Ez/40GnOdadVfiDDGz+NME2C4ms0BriXwZ1tcRTfJIHe2xjIbbb
9
- y5qRGfsLKcgMzvLQR24olixyX1MR0s4+Wveq3QL/gBhL4veUcv+UABJA8IJR0kyB
10
- seHHutusiwZ1v3SjjjW1xLLrc2ARV0mgCb0WaK2T4iA3oFTGLh6Ydz8LNl31KQFv
11
- 94nRd8IhmJxrhQ6dQ/WT9IXoa5S9lfT5lPJeINemH4/6QPABzf9W2IZlCdI9wCdB
12
- TBaw57MKneGAYZiKjw6OALSy2ltQUCl3RqFl3VP7n8uFy1U987Q5VIIQ3O1UUsQD
13
- Oe/h+r7GUU4RSPKgPlrwvW9bD/UQ+zF51v8CAwEAAaN3MHUwCQYDVR0TBAIwADAL
14
- BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFJNIBHdfEUD7TqHqIer2YhWaWhwcMB0GA1Ud
3
+ ZWovREM9bWVuc2ZlbGQvREM9cGwwHhcNMjEwODExMTQxNTEzWhcNMjIwODExMTQx
4
+ NTEzWjAjMSEwHwYDVQQDDBhtYWNpZWovREM9bWVuc2ZlbGQvREM9cGwwggGiMA0G
5
+ CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDV2jKH4Ti87GM6nyT6D+ESzTI0MZDj
6
+ ak2/TEwnxvijMJyCCPKT/qIkbW4/f0VHM4rhPr1nW73sb5SZBVFCLlJcOSKOBdUY
7
+ TMY+SIXN2EtUaZuhAOe8LxtxjHTgRHvHcqUQMBENXTISNzCo32LnUxweu66ia4Pd
8
+ 1mNRhzOqNv9YiBZvtBf7IMQ+sYdOCjboq2dlsWmJiwiDpY9lQBTnWORnT3mQxU5x
9
+ vPSwnLB854cHdCS8fQo4DjeJBRZHhEbcE5sqhEMB3RZA3EtFVEXOxlNxVTS3tncI
10
+ qyNXiWDaxcipaens4ObSY1C2HTV7OWb7OMqSCIybeYTSfkaSdqmcl4S6zxXkjH1J
11
+ tnjayAVzD+QVXGijsPLE2PFnJAh9iDET2cMsjabO1f6l1OQNyAtqpcyQcgfnyW0z
12
+ g7tGxTYD+6wJHffM9d9txOUw6djkF6bDxyqB8lo4Z3IObCx18AZjI9XPS9QG7w6q
13
+ LCWuMG2lkCcRgASqaVk9fEf9yMc2xxz5o3kCAwEAAaN3MHUwCQYDVR0TBAIwADAL
14
+ BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFBqUFCKCOe5IuueUVqOB991jyCLLMB0GA1Ud
15
15
  EQQWMBSBEm1hY2llakBtZW5zZmVsZC5wbDAdBgNVHRIEFjAUgRJtYWNpZWpAbWVu
16
- c2ZlbGQucGwwDQYJKoZIhvcNAQELBQADggGBAKA4eqko6BTNhlysip6rfBkVTGri
17
- ZXsL+kRb2hLvsQJS/kLyM21oMlu+LN0aPj3qEFR8mE/YeDD8rLAfruBRTltPNbR7
18
- xA5eE1gkxY5LfExUtK3b2wPqfmo7mZgfcsMwfYg/tUXw1WpBCnrhAJodpGH6SXmp
19
- A40qFUZst0vjiOoO+aTblIHPmMJXoZ3K42dTlNKlEiDKUWMRKSgpjjYGEYalFNWI
20
- hHfCz2r8L2t+dYdMZg1JGbEkq4ADGsAA8ioZIpJd7V4hI17u5TCdi7X5wh/0gN0E
21
- CgP+nLox3D+l2q0QuQEkayr+auFYkzTCkF+BmEk1D0Ru4mcf3F4CJvEmW4Pzbjqt
22
- i1tsCWPtJ4E/UUKnKaWKqGbjrjHJ0MuShYzHkodox5IOiCXIQg+1+YSzfXUV6WEK
23
- KJG/fhg1JV5vVDdVy6x+tv5SQ5ctU0feCsVfESi3rE3zRd+nvzE9HcZ5aXeL1UtJ
24
- nT5Xrioegu2w1jPyVEgyZgTZC5rvD0nNS5sFNQ==
16
+ c2ZlbGQucGwwDQYJKoZIhvcNAQELBQADggGBADD0/UuTTFgW+CGk2U0RDw2RBOca
17
+ W2LTF/G7AOzuzD0Tc4voc7WXyrgKwJREv8rgBimLnNlgmFJLmtUCh2U/MgxvcilH
18
+ yshYcbseNvjkrtYnLRlWZR4SSB6Zei5AlyGVQLPkvdsBpNegcG6w075YEwzX/38a
19
+ 8V9B/Yri2OGELBz8ykl7BsXUgNoUPA/4pHF6YRLz+VirOaUIQ4JfY7xGj6fSOWWz
20
+ /rQ/d77r6o1mfJYM/3BRVg73a3b7DmRnE5qjwmSaSQ7u802pJnLesmArch0xGCT/
21
+ fMmRli1Qb+6qOTl9mzD6UDMAyFR4t6MStLm0mIEqM0nBO5nUdUWbC7l9qXEf8XBE
22
+ 2DP28p3EqSuS+lKbAWKcqv7t0iRhhmaod+Yn9mcrLN1sa3q3KSQ9BCyxezCD4Mk2
23
+ R2P11bWoCtr70BsccVrN8jEhzwXngMyI2gVt750Y+dbTu1KgRqZKp/ECe7ZzPzXj
24
+ pIy9vHxTANKYVyI4qj8OrFdEM5BQNu8oQpL0iQ==
25
25
  -----END CERTIFICATE-----
@@ -0,0 +1,17 @@
1
+ version: '2'
2
+ services:
3
+ zookeeper:
4
+ image: wurstmeister/zookeeper
5
+ ports:
6
+ - "2181:2181"
7
+ kafka:
8
+ image: wurstmeister/kafka:1.0.1
9
+ ports:
10
+ - "9092:9092"
11
+ environment:
12
+ KAFKA_ADVERTISED_HOST_NAME: localhost
13
+ KAFKA_ADVERTISED_PORT: 9092
14
+ KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
15
+ KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
16
+ volumes:
17
+ - /var/run/docker.sock:/var/run/docker.sock
@@ -15,20 +15,20 @@ module WaterDrop
15
15
 
16
16
  # WaterDrop options
17
17
  # option client_id [String] identifier of this producer
18
- setting :client_id, 'waterdrop'
18
+ setting :client_id, default: 'waterdrop'
19
19
  # option [Instance, nil] logger that we want to use or nil to fallback to ruby-kafka logger
20
- setting :logger, Logger.new($stdout, level: Logger::WARN)
20
+ setting :logger, default: Logger.new($stdout, level: Logger::WARN)
21
21
  # option [Instance] monitor that we want to use. See instrumentation part of the README for
22
22
  # more details
23
- setting :monitor, WaterDrop::Instrumentation::Monitor.new
23
+ setting :monitor, default: WaterDrop::Instrumentation::Monitor.new
24
24
  # option [Boolean] should we send messages. Setting this to false can be really useful when
25
25
  # testing and or developing because when set to false, won't actually ping Kafka
26
- setting :deliver, true
26
+ setting :deliver, default: true
27
27
  # option [Boolean] if you're producing messages faster than the framework or the network can
28
28
  # send them off, ruby-kafka might reject them. If that happens, WaterDrop will either raise
29
29
  # or ignore - this setting manages that behavior. This only applies to async producer as
30
30
  # sync producer will always raise upon problems
31
- setting :raise_on_buffer_overflow, true
31
+ setting :raise_on_buffer_overflow, default: true
32
32
 
33
33
  # Settings directly related to the Kafka driver
34
34
  setting :kafka do
@@ -39,99 +39,99 @@ module WaterDrop
39
39
  # option connect_timeout [Integer] Sets the number of seconds to wait while connecting to
40
40
  # a broker for the first time. When ruby-kafka initializes, it needs to connect to at
41
41
  # least one host.
42
- setting :connect_timeout, 10
42
+ setting :connect_timeout, default: 10
43
43
  # option socket_timeout [Integer] Sets the number of seconds to wait when reading from or
44
44
  # writing to a socket connection to a broker. After this timeout expires the connection
45
45
  # will be killed. Note that some Kafka operations are by definition long-running, such as
46
46
  # waiting for new messages to arrive in a partition, so don't set this value too low
47
- setting :socket_timeout, 30
47
+ setting :socket_timeout, default: 30
48
48
 
49
49
  # Buffering for async producer
50
50
  # @option [Integer] The maximum number of bytes allowed in the buffer before new messages
51
51
  # are rejected.
52
- setting :max_buffer_bytesize, 10_000_000
52
+ setting :max_buffer_bytesize, default: 10_000_000
53
53
  # @option [Integer] The maximum number of messages allowed in the buffer before new messages
54
54
  # are rejected.
55
- setting :max_buffer_size, 1000
55
+ setting :max_buffer_size, default: 1000
56
56
  # @option [Integer] The maximum number of messages allowed in the queue before new messages
57
57
  # are rejected. The queue is used to ferry messages from the foreground threads of your
58
58
  # application to the background thread that buffers and delivers messages.
59
- setting :max_queue_size, 1000
59
+ setting :max_queue_size, default: 1000
60
60
 
61
61
  # option [Integer] A timeout executed by a broker when the client is sending messages to it.
62
62
  # It defines the number of seconds the broker should wait for replicas to acknowledge the
63
63
  # write before responding to the client with an error. As such, it relates to the
64
64
  # required_acks setting. It should be set lower than socket_timeout.
65
- setting :ack_timeout, 5
65
+ setting :ack_timeout, default: 5
66
66
  # option [Integer] The number of seconds between background message
67
67
  # deliveries. Default is 10 seconds. Disable timer-based background deliveries by
68
68
  # setting this to 0.
69
- setting :delivery_interval, 10
69
+ setting :delivery_interval, default: 10
70
70
  # option [Integer] The number of buffered messages that will trigger a background message
71
71
  # delivery. Default is 100 messages. Disable buffer size based background deliveries by
72
72
  # setting this to 0.
73
- setting :delivery_threshold, 100
73
+ setting :delivery_threshold, default: 100
74
74
  # option [Boolean]
75
- setting :idempotent, false
75
+ setting :idempotent, default: false
76
76
  # option [Boolean]
77
- setting :transactional, false
77
+ setting :transactional, default: false
78
78
  # option [Integer]
79
- setting :transactional_timeout, 60
79
+ setting :transactional_timeout, default: 60
80
80
 
81
81
  # option [Integer] The number of retries when attempting to deliver messages.
82
- setting :max_retries, 2
82
+ setting :max_retries, default: 2
83
83
  # option [Integer]
84
- setting :required_acks, -1
84
+ setting :required_acks, default: -1
85
85
  # option [Integer]
86
- setting :retry_backoff, 1
86
+ setting :retry_backoff, default: 1
87
87
 
88
88
  # option [Integer] The minimum number of messages that must be buffered before compression is
89
89
  # attempted. By default only one message is required. Only relevant if compression_codec
90
90
  # is set.
91
- setting :compression_threshold, 1
91
+ setting :compression_threshold, default: 1
92
92
  # option [Symbol] The codec used to compress messages. Must be either snappy or gzip.
93
- setting :compression_codec, nil
93
+ setting :compression_codec, default: nil
94
94
 
95
95
  # SSL authentication related settings
96
96
  # option ca_cert [String, nil] SSL CA certificate
97
- setting :ssl_ca_cert, nil
97
+ setting :ssl_ca_cert, default: nil
98
98
  # option ssl_ca_cert_file_path [String, nil] SSL CA certificate file path
99
- setting :ssl_ca_cert_file_path, nil
99
+ setting :ssl_ca_cert_file_path, default: nil
100
100
  # option ssl_ca_certs_from_system [Boolean] Use the CA certs from your system's default
101
101
  # certificate store
102
- setting :ssl_ca_certs_from_system, false
102
+ setting :ssl_ca_certs_from_system, default: false
103
103
  # option ssl_verify_hostname [Boolean] Verify the hostname for client certs
104
- setting :ssl_verify_hostname, true
104
+ setting :ssl_verify_hostname, default: true
105
105
  # option ssl_client_cert [String, nil] SSL client certificate
106
- setting :ssl_client_cert, nil
106
+ setting :ssl_client_cert, default: nil
107
107
  # option ssl_client_cert_key [String, nil] SSL client certificate password
108
- setting :ssl_client_cert_key, nil
108
+ setting :ssl_client_cert_key, default: nil
109
109
  # option sasl_gssapi_principal [String, nil] sasl principal
110
- setting :sasl_gssapi_principal, nil
110
+ setting :sasl_gssapi_principal, default: nil
111
111
  # option sasl_gssapi_keytab [String, nil] sasl keytab
112
- setting :sasl_gssapi_keytab, nil
112
+ setting :sasl_gssapi_keytab, default: nil
113
113
  # option sasl_plain_authzid [String] The authorization identity to use
114
- setting :sasl_plain_authzid, ''
114
+ setting :sasl_plain_authzid, default: ''
115
115
  # option sasl_plain_username [String, nil] The username used to authenticate
116
- setting :sasl_plain_username, nil
116
+ setting :sasl_plain_username, default: nil
117
117
  # option sasl_plain_password [String, nil] The password used to authenticate
118
- setting :sasl_plain_password, nil
118
+ setting :sasl_plain_password, default: nil
119
119
  # option sasl_scram_username [String, nil] The username used to authenticate
120
- setting :sasl_scram_username, nil
120
+ setting :sasl_scram_username, default: nil
121
121
  # option sasl_scram_password [String, nil] The password used to authenticate
122
- setting :sasl_scram_password, nil
122
+ setting :sasl_scram_password, default: nil
123
123
  # option sasl_scram_mechanism [String, nil] Scram mechanism, either 'sha256' or 'sha512'
124
- setting :sasl_scram_mechanism, nil
124
+ setting :sasl_scram_mechanism, default: nil
125
125
  # option sasl_over_ssl [Boolean] whether to enforce SSL with SASL
126
- setting :sasl_over_ssl, true
126
+ setting :sasl_over_ssl, default: true
127
127
  # option ssl_client_cert_chain [String, nil] client cert chain or nil if not used
128
- setting :ssl_client_cert_chain, nil
128
+ setting :ssl_client_cert_chain, default: nil
129
129
  # option ssl_client_cert_key_password [String, nil] the password required to read
130
130
  # the ssl_client_cert_key
131
- setting :ssl_client_cert_key_password, nil
131
+ setting :ssl_client_cert_key_password, default: nil
132
132
  # @param sasl_oauth_token_provider [Object, nil] OAuthBearer Token Provider instance that
133
133
  # implements method token.
134
- setting :sasl_oauth_token_provider, nil
134
+ setting :sasl_oauth_token_provider, default: nil
135
135
  end
136
136
 
137
137
  class << self
@@ -4,6 +4,6 @@ module WaterDrop
4
4
  # Namespace for all the contracts for config validations
5
5
  module Contracts
6
6
  # Regex to check that topic has a valid format
7
- TOPIC_REGEXP = /\A(\w|\-|\.)+\z/.freeze
7
+ TOPIC_REGEXP = /\A(\w|-|\.)+\z/
8
8
  end
9
9
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WaterDrop
4
- # Namespace for all the things related with WaterDrop instrumentation process
5
4
  module Instrumentation
6
5
  # Monitor is used to hookup external monitoring services to monitor how WaterDrop works
7
6
  # Since it is a pub-sub based on dry-monitor, you can use as many subscribers/loggers at the
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WaterDrop
4
+ # Namespace for all the things related with WaterDrop instrumentation process
5
+ module Instrumentation
6
+ end
7
+ end
@@ -16,7 +16,7 @@ module WaterDrop
16
16
  validate!(options)
17
17
  return unless WaterDrop.config.deliver
18
18
 
19
- DeliveryBoy.deliver(message, options)
19
+ DeliveryBoy.deliver(message, **options)
20
20
  rescue Kafka::Error => e
21
21
  graceful_attempt?(attempts_count, message, options, e) ? retry : raise(e)
22
22
  end
@@ -3,5 +3,5 @@
3
3
  # WaterDrop library
4
4
  module WaterDrop
5
5
  # Current WaterDrop version
6
- VERSION = '1.3.4'
6
+ VERSION = '1.4.4'
7
7
  end
data/waterdrop.gemspec CHANGED
@@ -17,13 +17,13 @@ Gem::Specification.new do |spec|
17
17
  spec.license = 'MIT'
18
18
 
19
19
  spec.add_dependency 'delivery_boy', '>= 0.2', '< 2.x'
20
- spec.add_dependency 'dry-configurable', '~> 0.8'
21
- spec.add_dependency 'dry-monitor', '~> 0.3'
22
- spec.add_dependency 'dry-validation', '~> 1.2'
23
- spec.add_dependency 'ruby-kafka', '>= 0.7.8'
24
- spec.add_dependency 'zeitwerk', '~> 2.1'
20
+ spec.add_dependency 'dry-configurable', '~> 0.13'
21
+ spec.add_dependency 'dry-monitor', '~> 0.5'
22
+ spec.add_dependency 'dry-validation', '~> 1.7'
23
+ spec.add_dependency 'ruby-kafka', '>= 1.3.0'
24
+ spec.add_dependency 'zeitwerk', '~> 2.4'
25
25
 
26
- spec.required_ruby_version = '>= 2.5.0'
26
+ spec.required_ruby_version = '>= 2.6.0'
27
27
 
28
28
  if $PROGRAM_NAME.end_with?('gem')
29
29
  spec.signing_key = File.expand_path('~/.ssh/gem-private_key.pem')
data.tar.gz.sig CHANGED
Binary file
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: 1.3.4
4
+ version: 1.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
@@ -11,30 +11,30 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEODCCAqCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhtYWNp
14
- ZWovREM9bWVuc2ZlbGQvREM9cGwwHhcNMTkwNzMwMTQ1NDU0WhcNMjAwNzI5MTQ1
15
- NDU0WjAjMSEwHwYDVQQDDBhtYWNpZWovREM9bWVuc2ZlbGQvREM9cGwwggGiMA0G
16
- CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC9fCwtaHZG2SyyNXiH8r0QbJQx/xxl
17
- dkvwWz9QGJO+O8rEx20FB1Ab+MVkfOscwIv5jWpmk1U9whzDPl1uFtIbgu+sk+Zb
18
- uQlZyK/DPN6c+/BbBL+RryTBRyvkPLoCVwm7uxc/JZ1n4AI6eF4cCZ2ieZ9QgQbU
19
- MQs2QPqs9hT50Ez/40GnOdadVfiDDGz+NME2C4ms0BriXwZ1tcRTfJIHe2xjIbbb
20
- y5qRGfsLKcgMzvLQR24olixyX1MR0s4+Wveq3QL/gBhL4veUcv+UABJA8IJR0kyB
21
- seHHutusiwZ1v3SjjjW1xLLrc2ARV0mgCb0WaK2T4iA3oFTGLh6Ydz8LNl31KQFv
22
- 94nRd8IhmJxrhQ6dQ/WT9IXoa5S9lfT5lPJeINemH4/6QPABzf9W2IZlCdI9wCdB
23
- TBaw57MKneGAYZiKjw6OALSy2ltQUCl3RqFl3VP7n8uFy1U987Q5VIIQ3O1UUsQD
24
- Oe/h+r7GUU4RSPKgPlrwvW9bD/UQ+zF51v8CAwEAAaN3MHUwCQYDVR0TBAIwADAL
25
- BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFJNIBHdfEUD7TqHqIer2YhWaWhwcMB0GA1Ud
14
+ ZWovREM9bWVuc2ZlbGQvREM9cGwwHhcNMjEwODExMTQxNTEzWhcNMjIwODExMTQx
15
+ NTEzWjAjMSEwHwYDVQQDDBhtYWNpZWovREM9bWVuc2ZlbGQvREM9cGwwggGiMA0G
16
+ CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDV2jKH4Ti87GM6nyT6D+ESzTI0MZDj
17
+ ak2/TEwnxvijMJyCCPKT/qIkbW4/f0VHM4rhPr1nW73sb5SZBVFCLlJcOSKOBdUY
18
+ TMY+SIXN2EtUaZuhAOe8LxtxjHTgRHvHcqUQMBENXTISNzCo32LnUxweu66ia4Pd
19
+ 1mNRhzOqNv9YiBZvtBf7IMQ+sYdOCjboq2dlsWmJiwiDpY9lQBTnWORnT3mQxU5x
20
+ vPSwnLB854cHdCS8fQo4DjeJBRZHhEbcE5sqhEMB3RZA3EtFVEXOxlNxVTS3tncI
21
+ qyNXiWDaxcipaens4ObSY1C2HTV7OWb7OMqSCIybeYTSfkaSdqmcl4S6zxXkjH1J
22
+ tnjayAVzD+QVXGijsPLE2PFnJAh9iDET2cMsjabO1f6l1OQNyAtqpcyQcgfnyW0z
23
+ g7tGxTYD+6wJHffM9d9txOUw6djkF6bDxyqB8lo4Z3IObCx18AZjI9XPS9QG7w6q
24
+ LCWuMG2lkCcRgASqaVk9fEf9yMc2xxz5o3kCAwEAAaN3MHUwCQYDVR0TBAIwADAL
25
+ BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFBqUFCKCOe5IuueUVqOB991jyCLLMB0GA1Ud
26
26
  EQQWMBSBEm1hY2llakBtZW5zZmVsZC5wbDAdBgNVHRIEFjAUgRJtYWNpZWpAbWVu
27
- c2ZlbGQucGwwDQYJKoZIhvcNAQELBQADggGBAKA4eqko6BTNhlysip6rfBkVTGri
28
- ZXsL+kRb2hLvsQJS/kLyM21oMlu+LN0aPj3qEFR8mE/YeDD8rLAfruBRTltPNbR7
29
- xA5eE1gkxY5LfExUtK3b2wPqfmo7mZgfcsMwfYg/tUXw1WpBCnrhAJodpGH6SXmp
30
- A40qFUZst0vjiOoO+aTblIHPmMJXoZ3K42dTlNKlEiDKUWMRKSgpjjYGEYalFNWI
31
- hHfCz2r8L2t+dYdMZg1JGbEkq4ADGsAA8ioZIpJd7V4hI17u5TCdi7X5wh/0gN0E
32
- CgP+nLox3D+l2q0QuQEkayr+auFYkzTCkF+BmEk1D0Ru4mcf3F4CJvEmW4Pzbjqt
33
- i1tsCWPtJ4E/UUKnKaWKqGbjrjHJ0MuShYzHkodox5IOiCXIQg+1+YSzfXUV6WEK
34
- KJG/fhg1JV5vVDdVy6x+tv5SQ5ctU0feCsVfESi3rE3zRd+nvzE9HcZ5aXeL1UtJ
35
- nT5Xrioegu2w1jPyVEgyZgTZC5rvD0nNS5sFNQ==
27
+ c2ZlbGQucGwwDQYJKoZIhvcNAQELBQADggGBADD0/UuTTFgW+CGk2U0RDw2RBOca
28
+ W2LTF/G7AOzuzD0Tc4voc7WXyrgKwJREv8rgBimLnNlgmFJLmtUCh2U/MgxvcilH
29
+ yshYcbseNvjkrtYnLRlWZR4SSB6Zei5AlyGVQLPkvdsBpNegcG6w075YEwzX/38a
30
+ 8V9B/Yri2OGELBz8ykl7BsXUgNoUPA/4pHF6YRLz+VirOaUIQ4JfY7xGj6fSOWWz
31
+ /rQ/d77r6o1mfJYM/3BRVg73a3b7DmRnE5qjwmSaSQ7u802pJnLesmArch0xGCT/
32
+ fMmRli1Qb+6qOTl9mzD6UDMAyFR4t6MStLm0mIEqM0nBO5nUdUWbC7l9qXEf8XBE
33
+ 2DP28p3EqSuS+lKbAWKcqv7t0iRhhmaod+Yn9mcrLN1sa3q3KSQ9BCyxezCD4Mk2
34
+ R2P11bWoCtr70BsccVrN8jEhzwXngMyI2gVt750Y+dbTu1KgRqZKp/ECe7ZzPzXj
35
+ pIy9vHxTANKYVyI4qj8OrFdEM5BQNu8oQpL0iQ==
36
36
  -----END CERTIFICATE-----
37
- date: 2020-02-17 00:00:00.000000000 Z
37
+ date: 2021-10-30 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: delivery_boy
@@ -62,70 +62,70 @@ dependencies:
62
62
  requirements:
63
63
  - - "~>"
64
64
  - !ruby/object:Gem::Version
65
- version: '0.8'
65
+ version: '0.13'
66
66
  type: :runtime
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
69
69
  requirements:
70
70
  - - "~>"
71
71
  - !ruby/object:Gem::Version
72
- version: '0.8'
72
+ version: '0.13'
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: dry-monitor
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: '0.3'
79
+ version: '0.5'
80
80
  type: :runtime
81
81
  prerelease: false
82
82
  version_requirements: !ruby/object:Gem::Requirement
83
83
  requirements:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
- version: '0.3'
86
+ version: '0.5'
87
87
  - !ruby/object:Gem::Dependency
88
88
  name: dry-validation
89
89
  requirement: !ruby/object:Gem::Requirement
90
90
  requirements:
91
91
  - - "~>"
92
92
  - !ruby/object:Gem::Version
93
- version: '1.2'
93
+ version: '1.7'
94
94
  type: :runtime
95
95
  prerelease: false
96
96
  version_requirements: !ruby/object:Gem::Requirement
97
97
  requirements:
98
98
  - - "~>"
99
99
  - !ruby/object:Gem::Version
100
- version: '1.2'
100
+ version: '1.7'
101
101
  - !ruby/object:Gem::Dependency
102
102
  name: ruby-kafka
103
103
  requirement: !ruby/object:Gem::Requirement
104
104
  requirements:
105
105
  - - ">="
106
106
  - !ruby/object:Gem::Version
107
- version: 0.7.8
107
+ version: 1.3.0
108
108
  type: :runtime
109
109
  prerelease: false
110
110
  version_requirements: !ruby/object:Gem::Requirement
111
111
  requirements:
112
112
  - - ">="
113
113
  - !ruby/object:Gem::Version
114
- version: 0.7.8
114
+ version: 1.3.0
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: zeitwerk
117
117
  requirement: !ruby/object:Gem::Requirement
118
118
  requirements:
119
119
  - - "~>"
120
120
  - !ruby/object:Gem::Version
121
- version: '2.1'
121
+ version: '2.4'
122
122
  type: :runtime
123
123
  prerelease: false
124
124
  version_requirements: !ruby/object:Gem::Requirement
125
125
  requirements:
126
126
  - - "~>"
127
127
  - !ruby/object:Gem::Version
128
- version: '2.1'
128
+ version: '2.4'
129
129
  description: Kafka messaging made easy!
130
130
  email:
131
131
  - maciej@mensfeld.pl
@@ -134,12 +134,12 @@ extensions: []
134
134
  extra_rdoc_files: []
135
135
  files:
136
136
  - ".coditsu/ci.yml"
137
- - ".github/FUNDING.yml"
137
+ - ".diffend.yml"
138
+ - ".github/workflows/ci.yml"
138
139
  - ".gitignore"
139
140
  - ".rspec"
140
141
  - ".ruby-gemset"
141
142
  - ".ruby-version"
142
- - ".travis.yml"
143
143
  - CHANGELOG.md
144
144
  - Gemfile
145
145
  - Gemfile.lock
@@ -147,6 +147,7 @@ files:
147
147
  - README.md
148
148
  - certs/mensfeld.pem
149
149
  - config/errors.yml
150
+ - docker-compose.yml
150
151
  - lib/water_drop.rb
151
152
  - lib/water_drop/async_producer.rb
152
153
  - lib/water_drop/base_producer.rb
@@ -156,6 +157,7 @@ files:
156
157
  - lib/water_drop/contracts/config.rb
157
158
  - lib/water_drop/contracts/message_options.rb
158
159
  - lib/water_drop/errors.rb
160
+ - lib/water_drop/instrumentation.rb
159
161
  - lib/water_drop/instrumentation/monitor.rb
160
162
  - lib/water_drop/instrumentation/stdout_listener.rb
161
163
  - lib/water_drop/sync_producer.rb
@@ -175,14 +177,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
175
177
  requirements:
176
178
  - - ">="
177
179
  - !ruby/object:Gem::Version
178
- version: 2.5.0
180
+ version: 2.6.0
179
181
  required_rubygems_version: !ruby/object:Gem::Requirement
180
182
  requirements:
181
183
  - - ">="
182
184
  - !ruby/object:Gem::Version
183
185
  version: '0'
184
186
  requirements: []
185
- rubygems_version: 3.1.2
187
+ rubygems_version: 3.2.25
186
188
  signing_key:
187
189
  specification_version: 4
188
190
  summary: Kafka messaging made easy!
metadata.gz.sig CHANGED
Binary file
data/.github/FUNDING.yml DELETED
@@ -1 +0,0 @@
1
- open_collective: karafka
data/.travis.yml DELETED
@@ -1,35 +0,0 @@
1
- services:
2
- - docker
3
-
4
- dist: trusty
5
- cache: bundler
6
-
7
- git:
8
- depth: false
9
-
10
- test: &test
11
- stage: Test
12
- language: ruby
13
- before_install:
14
- - yes | gem update --system
15
- script: bundle exec rspec
16
-
17
- jobs:
18
- include:
19
- - <<: *test
20
- rvm: 2.7.0
21
- - <<: *test
22
- rvm: 2.6.5
23
- - <<: *test
24
- rvm: 2.5.7
25
-
26
- - stage: coditsu
27
- language: ruby
28
- rvm: 2.7.0
29
- before_install:
30
- - yes | gem update --system
31
- script: \curl -sSL https://api.coditsu.io/run/ci | bash
32
-
33
- stages:
34
- - test
35
- - coditsu