waterdrop 2.8.16 → 2.10.0
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/.gitignore +4 -1
- data/.rubocop.yml +2 -41
- data/.ruby-version +1 -1
- data/.yard-lint.yml +1 -1
- data/CHANGELOG.md +17 -0
- data/Gemfile +2 -1
- data/Gemfile.lint +2 -2
- data/Gemfile.lint.lock +11 -26
- data/Gemfile.lock +43 -66
- data/Rakefile +12 -0
- data/bin/integrations +5 -3
- data/bin/verify_kafka_warnings +1 -0
- data/config/locales/errors.yml +6 -0
- data/docker-compose.oauth.yml +3 -3
- data/docker-compose.sasl.yml +26 -0
- data/docker-compose.yml +1 -1
- data/lib/waterdrop/clients/rdkafka.rb +153 -31
- data/lib/waterdrop/config.rb +23 -6
- data/lib/waterdrop/contracts/config.rb +3 -0
- data/lib/waterdrop/contracts/tombstone.rb +21 -0
- data/lib/waterdrop/errors.rb +7 -0
- data/lib/waterdrop/instrumentation/callbacks/statistics.rb +4 -2
- data/lib/waterdrop/instrumentation/monitor.rb +61 -0
- data/lib/waterdrop/polling/latch.rb +1 -0
- data/lib/waterdrop/polling/poller.rb +4 -0
- data/lib/waterdrop/producer/tombstone.rb +78 -0
- data/lib/waterdrop/producer/variant.rb +3 -2
- data/lib/waterdrop/producer.rb +1 -0
- data/lib/waterdrop/version.rb +1 -1
- data/package-lock.json +3 -3
- data/renovate.json +6 -3
- data/waterdrop.gemspec +2 -2
- metadata +7 -14
- data/.github/CODEOWNERS +0 -3
- data/.github/FUNDING.yml +0 -1
- data/.github/ISSUE_TEMPLATE/bug_report.md +0 -43
- data/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- data/.github/workflows/ci.yml +0 -322
- data/.github/workflows/push.yml +0 -35
- data/.github/workflows/trigger-wiki-refresh.yml +0 -30
- data/.github/workflows/verify-action-pins.yml +0 -16
- data/.rspec +0 -2
- data/log/.gitkeep +0 -0
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.
|
|
4
|
+
version: 2.10.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Maciej Mensfeld
|
|
@@ -15,7 +15,7 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 2.
|
|
18
|
+
version: 2.5.12
|
|
19
19
|
- - "<"
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
21
|
version: 3.0.0
|
|
@@ -25,7 +25,7 @@ dependencies:
|
|
|
25
25
|
requirements:
|
|
26
26
|
- - ">="
|
|
27
27
|
- !ruby/object:Gem::Version
|
|
28
|
-
version: 2.
|
|
28
|
+
version: 2.5.12
|
|
29
29
|
- - "<"
|
|
30
30
|
- !ruby/object:Gem::Version
|
|
31
31
|
version: 3.0.0
|
|
@@ -64,16 +64,7 @@ executables: []
|
|
|
64
64
|
extensions: []
|
|
65
65
|
extra_rdoc_files: []
|
|
66
66
|
files:
|
|
67
|
-
- ".github/CODEOWNERS"
|
|
68
|
-
- ".github/FUNDING.yml"
|
|
69
|
-
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
|
70
|
-
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
|
71
|
-
- ".github/workflows/ci.yml"
|
|
72
|
-
- ".github/workflows/push.yml"
|
|
73
|
-
- ".github/workflows/trigger-wiki-refresh.yml"
|
|
74
|
-
- ".github/workflows/verify-action-pins.yml"
|
|
75
67
|
- ".gitignore"
|
|
76
|
-
- ".rspec"
|
|
77
68
|
- ".rubocop.yml"
|
|
78
69
|
- ".ruby-gemset"
|
|
79
70
|
- ".ruby-version"
|
|
@@ -91,6 +82,7 @@ files:
|
|
|
91
82
|
- bin/verify_topics_naming
|
|
92
83
|
- config/locales/errors.yml
|
|
93
84
|
- docker-compose.oauth.yml
|
|
85
|
+
- docker-compose.sasl.yml
|
|
94
86
|
- docker-compose.yml
|
|
95
87
|
- lib/waterdrop.rb
|
|
96
88
|
- lib/waterdrop/clients/buffered.rb
|
|
@@ -102,6 +94,7 @@ files:
|
|
|
102
94
|
- lib/waterdrop/contracts/config.rb
|
|
103
95
|
- lib/waterdrop/contracts/message.rb
|
|
104
96
|
- lib/waterdrop/contracts/poller_config.rb
|
|
97
|
+
- lib/waterdrop/contracts/tombstone.rb
|
|
105
98
|
- lib/waterdrop/contracts/transactional_offset.rb
|
|
106
99
|
- lib/waterdrop/contracts/variant.rb
|
|
107
100
|
- lib/waterdrop/errors.rb
|
|
@@ -134,10 +127,10 @@ files:
|
|
|
134
127
|
- lib/waterdrop/producer/status.rb
|
|
135
128
|
- lib/waterdrop/producer/sync.rb
|
|
136
129
|
- lib/waterdrop/producer/testing.rb
|
|
130
|
+
- lib/waterdrop/producer/tombstone.rb
|
|
137
131
|
- lib/waterdrop/producer/transactions.rb
|
|
138
132
|
- lib/waterdrop/producer/variant.rb
|
|
139
133
|
- lib/waterdrop/version.rb
|
|
140
|
-
- log/.gitkeep
|
|
141
134
|
- package-lock.json
|
|
142
135
|
- package.json
|
|
143
136
|
- renovate.json
|
|
@@ -167,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
167
160
|
- !ruby/object:Gem::Version
|
|
168
161
|
version: '0'
|
|
169
162
|
requirements: []
|
|
170
|
-
rubygems_version: 4.0.
|
|
163
|
+
rubygems_version: 4.0.6
|
|
171
164
|
specification_version: 4
|
|
172
165
|
summary: Kafka messaging made easy!
|
|
173
166
|
test_files: []
|
data/.github/CODEOWNERS
DELETED
data/.github/FUNDING.yml
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
custom: ['https://karafka.io/#become-pro']
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Bug Report
|
|
3
|
-
about: Report an issue within the Karafka ecosystem you've discovered.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
To make this process smoother for everyone involved, please read the following information before filling out the template.
|
|
7
|
-
|
|
8
|
-
Scope of the OSS Support
|
|
9
|
-
===========
|
|
10
|
-
|
|
11
|
-
We do not provide OSS support for outdated versions of Karafka and its components.
|
|
12
|
-
|
|
13
|
-
Please ensure that you are using a version that is still actively supported. We cannot assist with any no longer maintained versions unless you support us with our Pro offering (https://karafka.io/docs/Pro-Support/).
|
|
14
|
-
|
|
15
|
-
We acknowledge that understanding the specifics of your application and its configuration can be essential for resolving certain issues. However, due to the extensive time and resources such analysis can require, this may fall beyond our Open Source Support scope.
|
|
16
|
-
|
|
17
|
-
If Karafka or its components are critical to your infrastructure, we encourage you to consider our Pro Offering.
|
|
18
|
-
|
|
19
|
-
By backing us up, you can gain direct assistance and ensure your use case receives the dedicated attention it deserves.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Important Links to Read
|
|
23
|
-
===========
|
|
24
|
-
|
|
25
|
-
Please take a moment to review the following resources before submitting your report:
|
|
26
|
-
|
|
27
|
-
- Issue Reporting Guide: https://karafka.io/docs/Support/#issue-reporting-guide
|
|
28
|
-
- Support Policy: https://karafka.io/docs/Support/
|
|
29
|
-
- Versions, Lifecycle, and EOL: https://karafka.io/docs/Versions-Lifecycle-and-EOL/
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
Bug Report Details
|
|
33
|
-
===========
|
|
34
|
-
|
|
35
|
-
Please provide all the details per our Issue Reporting Guide: https://karafka.io/docs/Support/#issue-reporting-guide
|
|
36
|
-
|
|
37
|
-
Failing to provide the required details may result in the issue being closed. Please include all necessary information to help us understand and resolve your issue effectively.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
Additional Context
|
|
41
|
-
===========
|
|
42
|
-
|
|
43
|
-
Add any other context about the problem here.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Feature Request
|
|
3
|
-
about: Suggest new WaterDrop features or improvements to existing features.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Is your feature request related to a problem? Please describe.
|
|
7
|
-
|
|
8
|
-
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
9
|
-
|
|
10
|
-
## Describe the solution you'd like
|
|
11
|
-
|
|
12
|
-
A clear and concise description of what you want to happen.
|
|
13
|
-
|
|
14
|
-
## Describe alternatives you've considered
|
|
15
|
-
|
|
16
|
-
A clear and concise description of any alternative solutions or features you've considered.
|
|
17
|
-
|
|
18
|
-
## Additional context
|
|
19
|
-
|
|
20
|
-
Add any other context or screenshots about the feature request here.
|
data/.github/workflows/ci.yml
DELETED
|
@@ -1,322 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
concurrency:
|
|
4
|
-
group: ${{ github.workflow }}-${{ github.ref }}
|
|
5
|
-
cancel-in-progress: true
|
|
6
|
-
|
|
7
|
-
on:
|
|
8
|
-
pull_request:
|
|
9
|
-
branches: [ master ]
|
|
10
|
-
schedule:
|
|
11
|
-
- cron: '0 1 * * *'
|
|
12
|
-
|
|
13
|
-
permissions:
|
|
14
|
-
contents: read
|
|
15
|
-
|
|
16
|
-
jobs:
|
|
17
|
-
specs:
|
|
18
|
-
timeout-minutes: 15
|
|
19
|
-
runs-on: ubuntu-latest
|
|
20
|
-
strategy:
|
|
21
|
-
fail-fast: false
|
|
22
|
-
matrix:
|
|
23
|
-
ruby:
|
|
24
|
-
- '4.0'
|
|
25
|
-
- '3.4'
|
|
26
|
-
- '3.3'
|
|
27
|
-
- '3.2'
|
|
28
|
-
polling_mode:
|
|
29
|
-
- 'thread'
|
|
30
|
-
- 'fiber'
|
|
31
|
-
include:
|
|
32
|
-
- ruby: '3.4'
|
|
33
|
-
polling_mode: 'thread'
|
|
34
|
-
coverage: 'true'
|
|
35
|
-
steps:
|
|
36
|
-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
37
|
-
with:
|
|
38
|
-
fetch-depth: 0
|
|
39
|
-
|
|
40
|
-
- name: Install package dependencies
|
|
41
|
-
run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS"
|
|
42
|
-
|
|
43
|
-
- name: Set up Ruby
|
|
44
|
-
uses: ruby/setup-ruby@09a7688d3b55cf0e976497ff046b70949eeaccfd # v1.288.0
|
|
45
|
-
with:
|
|
46
|
-
ruby-version: ${{matrix.ruby}}
|
|
47
|
-
bundler-cache: true
|
|
48
|
-
bundler: 'latest'
|
|
49
|
-
self-hosted: false
|
|
50
|
-
|
|
51
|
-
- name: Run Kafka with Docker Compose
|
|
52
|
-
run: |
|
|
53
|
-
docker compose up -d || (sleep 5 && docker compose up -d)
|
|
54
|
-
|
|
55
|
-
- name: Wait for Kafka
|
|
56
|
-
run: sleep 15
|
|
57
|
-
|
|
58
|
-
- name: Install latest bundler
|
|
59
|
-
run: |
|
|
60
|
-
gem install bundler --no-document
|
|
61
|
-
gem update --system --no-document
|
|
62
|
-
bundle config set without 'tools benchmarks docs'
|
|
63
|
-
|
|
64
|
-
- name: Bundle install
|
|
65
|
-
run: |
|
|
66
|
-
bundle config set without development
|
|
67
|
-
bundle install --jobs 4 --retry 3
|
|
68
|
-
|
|
69
|
-
- name: Run all tests
|
|
70
|
-
env:
|
|
71
|
-
GITHUB_COVERAGE: ${{matrix.coverage}}
|
|
72
|
-
FD_POLLING: ${{ matrix.polling_mode == 'fiber' && 'true' || 'false' }}
|
|
73
|
-
run: bundle exec rspec
|
|
74
|
-
|
|
75
|
-
- name: Run integration tests
|
|
76
|
-
env:
|
|
77
|
-
FD_POLLING: ${{ matrix.polling_mode == 'fiber' && 'true' || 'false' }}
|
|
78
|
-
# Exclude oauth_token_refresh - requires separate Keycloak + OAuth Kafka infrastructure
|
|
79
|
-
run: ./bin/integrations --exclude oauth_token_refresh
|
|
80
|
-
|
|
81
|
-
- name: Check Kafka logs for unexpected warnings
|
|
82
|
-
run: bin/verify_kafka_warnings
|
|
83
|
-
|
|
84
|
-
- name: Check test topics naming convention
|
|
85
|
-
run: bin/verify_topics_naming
|
|
86
|
-
|
|
87
|
-
rubocop:
|
|
88
|
-
timeout-minutes: 5
|
|
89
|
-
runs-on: ubuntu-latest
|
|
90
|
-
env:
|
|
91
|
-
BUNDLE_GEMFILE: Gemfile.lint
|
|
92
|
-
steps:
|
|
93
|
-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
94
|
-
with:
|
|
95
|
-
fetch-depth: 0
|
|
96
|
-
- name: Set up Ruby
|
|
97
|
-
uses: ruby/setup-ruby@09a7688d3b55cf0e976497ff046b70949eeaccfd # v1.288.0
|
|
98
|
-
with:
|
|
99
|
-
ruby-version: '4.0.1'
|
|
100
|
-
bundler-cache: true
|
|
101
|
-
- name: Run rubocop
|
|
102
|
-
run: bundle exec rubocop
|
|
103
|
-
|
|
104
|
-
yard-lint:
|
|
105
|
-
timeout-minutes: 5
|
|
106
|
-
runs-on: ubuntu-latest
|
|
107
|
-
env:
|
|
108
|
-
BUNDLE_GEMFILE: Gemfile.lint
|
|
109
|
-
steps:
|
|
110
|
-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
111
|
-
with:
|
|
112
|
-
fetch-depth: 0
|
|
113
|
-
- name: Set up Ruby
|
|
114
|
-
uses: ruby/setup-ruby@09a7688d3b55cf0e976497ff046b70949eeaccfd # v1.288.0
|
|
115
|
-
with:
|
|
116
|
-
ruby-version: '4.0.1'
|
|
117
|
-
bundler-cache: true
|
|
118
|
-
- name: Run yard-lint
|
|
119
|
-
run: bundle exec yard-lint lib/
|
|
120
|
-
|
|
121
|
-
lostconf:
|
|
122
|
-
timeout-minutes: 5
|
|
123
|
-
runs-on: ubuntu-latest
|
|
124
|
-
steps:
|
|
125
|
-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
126
|
-
with:
|
|
127
|
-
fetch-depth: 0
|
|
128
|
-
- name: Set up Node.js
|
|
129
|
-
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
|
130
|
-
with:
|
|
131
|
-
node-version: '20'
|
|
132
|
-
cache: 'npm'
|
|
133
|
-
- name: Install dependencies
|
|
134
|
-
run: npm ci
|
|
135
|
-
- name: Run lostconf
|
|
136
|
-
run: npx lostconf --fail-on-stale
|
|
137
|
-
|
|
138
|
-
oauth-integration:
|
|
139
|
-
timeout-minutes: 10
|
|
140
|
-
runs-on: ubuntu-latest
|
|
141
|
-
strategy:
|
|
142
|
-
fail-fast: false
|
|
143
|
-
matrix:
|
|
144
|
-
polling_mode:
|
|
145
|
-
- 'thread'
|
|
146
|
-
- 'fiber'
|
|
147
|
-
steps:
|
|
148
|
-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
149
|
-
with:
|
|
150
|
-
fetch-depth: 0
|
|
151
|
-
|
|
152
|
-
- name: Set up Ruby
|
|
153
|
-
uses: ruby/setup-ruby@09a7688d3b55cf0e976497ff046b70949eeaccfd # v1.288.0
|
|
154
|
-
with:
|
|
155
|
-
ruby-version: '4.0.1'
|
|
156
|
-
bundler-cache: true
|
|
157
|
-
bundler: 'latest'
|
|
158
|
-
|
|
159
|
-
- name: Start OAuth infrastructure (Keycloak + Kafka with SASL/OAUTHBEARER)
|
|
160
|
-
run: docker compose -f docker-compose.oauth.yml up -d
|
|
161
|
-
|
|
162
|
-
- name: Wait for Keycloak to be ready
|
|
163
|
-
run: |
|
|
164
|
-
echo "Waiting for Keycloak to be ready..."
|
|
165
|
-
for i in {1..60}; do
|
|
166
|
-
if curl -sf http://localhost:8080/realms/kafka > /dev/null 2>&1; then
|
|
167
|
-
echo "Keycloak is ready!"
|
|
168
|
-
break
|
|
169
|
-
fi
|
|
170
|
-
echo "Waiting... ($i/60)"
|
|
171
|
-
sleep 2
|
|
172
|
-
done
|
|
173
|
-
|
|
174
|
-
- name: Wait for Kafka OAuth broker to be ready
|
|
175
|
-
run: |
|
|
176
|
-
echo "Waiting for Kafka OAuth broker..."
|
|
177
|
-
sleep 10
|
|
178
|
-
|
|
179
|
-
- name: Install dependencies
|
|
180
|
-
run: |
|
|
181
|
-
gem install bundler --no-document
|
|
182
|
-
bundle config set without 'tools benchmarks docs development'
|
|
183
|
-
bundle install --jobs 4 --retry 3
|
|
184
|
-
|
|
185
|
-
- name: Run OAuth integration test
|
|
186
|
-
env:
|
|
187
|
-
FD_POLLING: ${{ matrix.polling_mode == 'fiber' && 'true' || 'false' }}
|
|
188
|
-
run: ./bin/integrations oauth_token_refresh
|
|
189
|
-
|
|
190
|
-
- name: Show Keycloak logs on failure
|
|
191
|
-
if: failure()
|
|
192
|
-
run: docker compose -f docker-compose.oauth.yml logs keycloak
|
|
193
|
-
|
|
194
|
-
- name: Show Kafka OAuth logs on failure
|
|
195
|
-
if: failure()
|
|
196
|
-
run: docker compose -f docker-compose.oauth.yml logs kafka-oauth
|
|
197
|
-
|
|
198
|
-
specs-macos:
|
|
199
|
-
timeout-minutes: 30
|
|
200
|
-
runs-on: macos-15
|
|
201
|
-
env:
|
|
202
|
-
CONFLUENT_VERSION: "8.0.0"
|
|
203
|
-
strategy:
|
|
204
|
-
fail-fast: false
|
|
205
|
-
matrix:
|
|
206
|
-
polling_mode:
|
|
207
|
-
- 'thread'
|
|
208
|
-
- 'fiber'
|
|
209
|
-
steps:
|
|
210
|
-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
211
|
-
with:
|
|
212
|
-
fetch-depth: 0
|
|
213
|
-
|
|
214
|
-
- name: Install Bash 4+
|
|
215
|
-
run: |
|
|
216
|
-
brew install bash
|
|
217
|
-
echo "/opt/homebrew/bin" >> $GITHUB_PATH
|
|
218
|
-
|
|
219
|
-
- name: Set up Ruby
|
|
220
|
-
uses: ruby/setup-ruby@09a7688d3b55cf0e976497ff046b70949eeaccfd # v1.288.0
|
|
221
|
-
with:
|
|
222
|
-
ruby-version: '4.0.1'
|
|
223
|
-
bundler-cache: true
|
|
224
|
-
bundler: 'latest'
|
|
225
|
-
|
|
226
|
-
- name: Install and Start Confluent Community Kafka (KRaft)
|
|
227
|
-
run: |
|
|
228
|
-
brew install openjdk@17
|
|
229
|
-
export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"
|
|
230
|
-
export JAVA_HOME="/opt/homebrew/opt/openjdk@17"
|
|
231
|
-
|
|
232
|
-
curl -O "https://packages.confluent.io/archive/8.0/confluent-community-${CONFLUENT_VERSION}.tar.gz"
|
|
233
|
-
tar -xzf "confluent-community-${CONFLUENT_VERSION}.tar.gz"
|
|
234
|
-
|
|
235
|
-
export CONFLUENT_HOME="$(pwd)/confluent-${CONFLUENT_VERSION}"
|
|
236
|
-
export PATH="$CONFLUENT_HOME/bin:$PATH"
|
|
237
|
-
cd "$CONFLUENT_HOME"
|
|
238
|
-
|
|
239
|
-
KRAFT_CONFIG=""
|
|
240
|
-
for config in "etc/kafka/kraft/server.properties" "config/kraft/server.properties" "etc/kafka/server.properties"; do
|
|
241
|
-
if [ -f "$config" ]; then
|
|
242
|
-
KRAFT_CONFIG="$config"
|
|
243
|
-
echo "Found config: $KRAFT_CONFIG"
|
|
244
|
-
break
|
|
245
|
-
fi
|
|
246
|
-
done
|
|
247
|
-
|
|
248
|
-
if [ -z "$KRAFT_CONFIG" ]; then
|
|
249
|
-
echo "❌ No server config found"
|
|
250
|
-
exit 1
|
|
251
|
-
fi
|
|
252
|
-
|
|
253
|
-
cat >> "$KRAFT_CONFIG" << 'EOF'
|
|
254
|
-
|
|
255
|
-
process.roles=broker,controller
|
|
256
|
-
node.id=1
|
|
257
|
-
controller.quorum.voters=1@127.0.0.1:9093
|
|
258
|
-
listeners=PLAINTEXT://127.0.0.1:9092,CONTROLLER://127.0.0.1:9093
|
|
259
|
-
advertised.listeners=PLAINTEXT://127.0.0.1:9092
|
|
260
|
-
controller.listener.names=CONTROLLER
|
|
261
|
-
inter.broker.listener.name=PLAINTEXT
|
|
262
|
-
log.dirs=/tmp/kraft-combined-logs
|
|
263
|
-
authorizer.class.name=org.apache.kafka.metadata.authorizer.StandardAuthorizer
|
|
264
|
-
super.users=User:ANONYMOUS
|
|
265
|
-
allow.everyone.if.no.acl.found=true
|
|
266
|
-
EOF
|
|
267
|
-
|
|
268
|
-
CLUSTER_ID=$(bin/kafka-storage random-uuid)
|
|
269
|
-
bin/kafka-storage format -t "$CLUSTER_ID" -c "$KRAFT_CONFIG"
|
|
270
|
-
bin/kafka-server-start "$KRAFT_CONFIG" &
|
|
271
|
-
|
|
272
|
-
sleep 20
|
|
273
|
-
|
|
274
|
-
for i in {1..30}; do
|
|
275
|
-
if bin/kafka-topics --bootstrap-server 127.0.0.1:9092 --list >/dev/null 2>&1; then
|
|
276
|
-
echo "✅ Confluent Community ${CONFLUENT_VERSION} (KRaft) is ready!"
|
|
277
|
-
break
|
|
278
|
-
fi
|
|
279
|
-
[ $i -eq 30 ] && { echo "❌ Kafka failed to start"; exit 1; }
|
|
280
|
-
sleep 2
|
|
281
|
-
done
|
|
282
|
-
|
|
283
|
-
- name: Install latest bundler
|
|
284
|
-
run: |
|
|
285
|
-
gem install bundler --no-document
|
|
286
|
-
gem update --system --no-document
|
|
287
|
-
bundle config set without 'tools benchmarks docs'
|
|
288
|
-
|
|
289
|
-
- name: Bundle install
|
|
290
|
-
run: |
|
|
291
|
-
bundle config set without development
|
|
292
|
-
bundle install --jobs 4 --retry 3
|
|
293
|
-
|
|
294
|
-
- name: Run all tests
|
|
295
|
-
env:
|
|
296
|
-
FD_POLLING: ${{ matrix.polling_mode == 'fiber' && 'true' || 'false' }}
|
|
297
|
-
run: bundle exec rspec
|
|
298
|
-
|
|
299
|
-
- name: Run integration tests
|
|
300
|
-
env:
|
|
301
|
-
FD_POLLING: ${{ matrix.polling_mode == 'fiber' && 'true' || 'false' }}
|
|
302
|
-
run: ./bin/integrations --exclude oauth_token_refresh
|
|
303
|
-
|
|
304
|
-
ci-success:
|
|
305
|
-
name: CI Success
|
|
306
|
-
runs-on: ubuntu-latest
|
|
307
|
-
if: always()
|
|
308
|
-
needs:
|
|
309
|
-
- rubocop
|
|
310
|
-
- specs
|
|
311
|
-
- specs-macos
|
|
312
|
-
- yard-lint
|
|
313
|
-
- lostconf
|
|
314
|
-
- oauth-integration
|
|
315
|
-
steps:
|
|
316
|
-
- name: Check all jobs passed
|
|
317
|
-
if: |
|
|
318
|
-
contains(needs.*.result, 'failure') ||
|
|
319
|
-
contains(needs.*.result, 'cancelled') ||
|
|
320
|
-
contains(needs.*.result, 'skipped')
|
|
321
|
-
run: exit 1
|
|
322
|
-
- run: echo "All CI checks passed!"
|
data/.github/workflows/push.yml
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
name: Push Gem
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags:
|
|
6
|
-
- v*
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
contents: read
|
|
10
|
-
|
|
11
|
-
jobs:
|
|
12
|
-
push:
|
|
13
|
-
if: github.repository_owner == 'karafka'
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
environment: deployment
|
|
16
|
-
|
|
17
|
-
permissions:
|
|
18
|
-
contents: write
|
|
19
|
-
id-token: write
|
|
20
|
-
|
|
21
|
-
steps:
|
|
22
|
-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
23
|
-
with:
|
|
24
|
-
fetch-depth: 0
|
|
25
|
-
|
|
26
|
-
- name: Set up Ruby
|
|
27
|
-
uses: ruby/setup-ruby@09a7688d3b55cf0e976497ff046b70949eeaccfd # v1.288.0
|
|
28
|
-
with:
|
|
29
|
-
bundler-cache: false
|
|
30
|
-
|
|
31
|
-
- name: Bundle install
|
|
32
|
-
run: |
|
|
33
|
-
bundle install --jobs 4 --retry 3
|
|
34
|
-
|
|
35
|
-
- uses: rubygems/release-gem@1c162a739e8b4cb21a676e97b087e8268d8fc40b # v1.1.2
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
name: Trigger Wiki Refresh
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
release:
|
|
5
|
-
types: [published]
|
|
6
|
-
push:
|
|
7
|
-
branches: [master]
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
trigger-wiki-refresh:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
environment: wiki-trigger
|
|
13
|
-
if: github.repository_owner == 'karafka'
|
|
14
|
-
steps:
|
|
15
|
-
- name: Trigger wiki refresh
|
|
16
|
-
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
|
|
17
|
-
with:
|
|
18
|
-
token: ${{ secrets.WIKI_REPO_TOKEN }}
|
|
19
|
-
repository: karafka/wiki
|
|
20
|
-
event-type: sync-trigger
|
|
21
|
-
client-payload: |
|
|
22
|
-
{
|
|
23
|
-
"repository": "${{ github.repository }}",
|
|
24
|
-
"event_name": "${{ github.event_name }}",
|
|
25
|
-
"release_tag": "${{ github.event.release.tag_name || '' }}",
|
|
26
|
-
"release_name": "${{ github.event.release.name || '' }}",
|
|
27
|
-
"commit_sha": "${{ github.sha }}",
|
|
28
|
-
"commit_message": "Trigger Wiki Refresh",
|
|
29
|
-
"triggered_by": "${{ github.actor }}"
|
|
30
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
name: Verify Action Pins
|
|
2
|
-
on:
|
|
3
|
-
pull_request:
|
|
4
|
-
paths:
|
|
5
|
-
- '.github/workflows/**'
|
|
6
|
-
jobs:
|
|
7
|
-
verify_action_pins:
|
|
8
|
-
runs-on: ubuntu-latest
|
|
9
|
-
steps:
|
|
10
|
-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
11
|
-
- name: Check SHA pins
|
|
12
|
-
run: |
|
|
13
|
-
if grep -E -r "uses: .*/.*@(v[0-9]+|main|master)($|[[:space:]]|$)" --include="*.yml" --include="*.yaml" .github/workflows/ | grep -v "#"; then
|
|
14
|
-
echo "::error::Actions should use SHA pins, not tags or branch names"
|
|
15
|
-
exit 1
|
|
16
|
-
fi
|
data/.rspec
DELETED
data/log/.gitkeep
DELETED
|
File without changes
|