karafka-rdkafka 0.20.1-arm64-darwin → 0.21.0-arm64-darwin

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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/{ci_linux_x86_64_musl.yml → ci_linux_alpine_x86_64_musl.yml} +12 -9
  3. data/.github/workflows/ci_linux_alpine_x86_64_musl_complementary.yml +264 -0
  4. data/.github/workflows/ci_linux_debian_x86_64_gnu.yml +271 -0
  5. data/.github/workflows/ci_linux_debian_x86_64_gnu_complementary.yml +334 -0
  6. data/.github/workflows/{ci_linux_x86_64_gnu.yml → ci_linux_ubuntu_aarch64_gnu.yml} +15 -15
  7. data/.github/workflows/ci_linux_ubuntu_aarch64_gnu_complementary.yml +295 -0
  8. data/.github/workflows/ci_linux_ubuntu_x86_64_gnu.yml +281 -0
  9. data/.github/workflows/ci_linux_ubuntu_x86_64_gnu_complementary.yml +294 -0
  10. data/.github/workflows/ci_macos_arm64.yml +5 -5
  11. data/.github/workflows/push_linux_aarch64_gnu.yml +65 -0
  12. data/.github/workflows/push_linux_x86_64_gnu.yml +2 -2
  13. data/.github/workflows/push_linux_x86_64_musl.yml +3 -3
  14. data/.github/workflows/push_macos_arm64.yml +2 -2
  15. data/.github/workflows/push_ruby.yml +1 -1
  16. data/.github/workflows/trigger-wiki-refresh.yml +30 -0
  17. data/.github/workflows/verify-action-pins.yml +1 -1
  18. data/.gitignore +1 -0
  19. data/.rspec +1 -0
  20. data/CHANGELOG.md +9 -0
  21. data/README.md +48 -147
  22. data/dist/cyrus-sasl-2.1.28.tar.gz +0 -0
  23. data/dist/krb5-1.21.3.tar.gz +0 -0
  24. data/dist/openssl-3.0.16.tar.gz +0 -0
  25. data/dist/zlib-1.3.1.tar.gz +0 -0
  26. data/dist/zstd-1.5.7.tar.gz +0 -0
  27. data/docker-compose-ssl.yml +35 -0
  28. data/ext/build_common.sh +18 -3
  29. data/ext/build_linux_aarch64_gnu.sh +326 -0
  30. data/ext/build_linux_x86_64_gnu.sh +12 -1
  31. data/ext/build_linux_x86_64_musl.sh +18 -8
  32. data/ext/build_macos_arm64.sh +7 -0
  33. data/ext/generate-ssl-certs.sh +109 -0
  34. data/ext/librdkafka.dylib +0 -0
  35. data/karafka-rdkafka.gemspec +2 -0
  36. data/lib/rdkafka/bindings.rb +0 -1
  37. data/lib/rdkafka/config.rb +1 -4
  38. data/lib/rdkafka/consumer.rb +1 -1
  39. data/lib/rdkafka/version.rb +3 -3
  40. data/spec/integrations/ssl_stress_spec.rb +121 -0
  41. data/spec/{rdkafka → lib/rdkafka}/admin_spec.rb +17 -5
  42. data/spec/{rdkafka → lib/rdkafka}/config_spec.rb +1 -1
  43. data/spec/{rdkafka → lib/rdkafka}/consumer_spec.rb +50 -3
  44. data/spec/{rdkafka → lib/rdkafka}/metadata_spec.rb +2 -2
  45. data/spec/{rdkafka → lib/rdkafka}/producer/delivery_report_spec.rb +1 -1
  46. data/spec/{rdkafka → lib/rdkafka}/producer_spec.rb +6 -7
  47. data/spec/spec_helper.rb +45 -10
  48. metadata +76 -31
  49. /data/spec/{rdkafka → lib/rdkafka}/abstract_handle_spec.rb +0 -0
  50. /data/spec/{rdkafka → lib/rdkafka}/admin/create_acl_handle_spec.rb +0 -0
  51. /data/spec/{rdkafka → lib/rdkafka}/admin/create_acl_report_spec.rb +0 -0
  52. /data/spec/{rdkafka → lib/rdkafka}/admin/create_topic_handle_spec.rb +0 -0
  53. /data/spec/{rdkafka → lib/rdkafka}/admin/create_topic_report_spec.rb +0 -0
  54. /data/spec/{rdkafka → lib/rdkafka}/admin/delete_acl_handle_spec.rb +0 -0
  55. /data/spec/{rdkafka → lib/rdkafka}/admin/delete_acl_report_spec.rb +0 -0
  56. /data/spec/{rdkafka → lib/rdkafka}/admin/delete_topic_handle_spec.rb +0 -0
  57. /data/spec/{rdkafka → lib/rdkafka}/admin/delete_topic_report_spec.rb +0 -0
  58. /data/spec/{rdkafka → lib/rdkafka}/admin/describe_acl_handle_spec.rb +0 -0
  59. /data/spec/{rdkafka → lib/rdkafka}/admin/describe_acl_report_spec.rb +0 -0
  60. /data/spec/{rdkafka → lib/rdkafka}/bindings_spec.rb +0 -0
  61. /data/spec/{rdkafka → lib/rdkafka}/callbacks_spec.rb +0 -0
  62. /data/spec/{rdkafka → lib/rdkafka}/consumer/headers_spec.rb +0 -0
  63. /data/spec/{rdkafka → lib/rdkafka}/consumer/message_spec.rb +0 -0
  64. /data/spec/{rdkafka → lib/rdkafka}/consumer/partition_spec.rb +0 -0
  65. /data/spec/{rdkafka → lib/rdkafka}/consumer/topic_partition_list_spec.rb +0 -0
  66. /data/spec/{rdkafka → lib/rdkafka}/error_spec.rb +0 -0
  67. /data/spec/{rdkafka → lib/rdkafka}/native_kafka_spec.rb +0 -0
  68. /data/spec/{rdkafka → lib/rdkafka}/producer/delivery_handle_spec.rb +0 -0
  69. /data/spec/{rdkafka → lib/rdkafka}/producer/partitions_count_cache_spec.rb +0 -0
@@ -0,0 +1,294 @@
1
+ # CI Strategy: Complementary Testing for Ubuntu Precompiled Binaries and Extended Compatibility
2
+ #
3
+ # This workflow runs complementary tests that don't need to block PRs but are essential
4
+ # for catching regressions in precompiled binary distribution, edge case Ruby versions,
5
+ # and system library compatibility. It complements the main CI by testing scenarios
6
+ # that are stable-but-critical on a nightly schedule.
7
+ #
8
+ # WHY COMPLEMENTARY TESTING:
9
+ # - Precompiled binary testing is stable (rarely breaks from code changes)
10
+ # - Edge Ruby versions (3.1, 3.5-preview, JRuby) need testing but shouldn't block PRs
11
+ # - Integration specs test OS library compatibility, which changes with system updates
12
+ # - These tests catch regressions from external changes (system libs, Ruby updates)
13
+ # - Running every 3 days to prevent these slower tests from blocking PR velocity
14
+ # - Manual triggering allows testing workflow changes before they go into schedule
15
+ #
16
+ # PRECOMPILED BINARY TESTING (build_precompiled + specs_precompiled):
17
+ # - Tests static library distribution works across Ubuntu versions
18
+ # - Validates precompiled libraries don't have unexpected system dependencies
19
+ # - Ensures binary compatibility between different Ubuntu LTS versions
20
+ # - Tests SSL/TLS connectivity with precompiled binaries
21
+ # - Validates that removing build tools doesn't break precompiled usage
22
+ #
23
+ # EXTENDED COMPATIBILITY TESTING:
24
+ # - Edge case Ruby versions: 3.1, 3.5.0-preview1, JRuby-10.0
25
+ # - Integration specs testing system library compatibility
26
+ # - Both compilation and precompiled flows for comprehensive coverage
27
+ # - Cross-platform compatibility validation
28
+ #
29
+ # SCHEDULING STRATEGY:
30
+ # - Runs every 3 days at 2 AM to catch system/library changes from base image updates
31
+ # - Triggers on workflow file changes to validate CI modifications
32
+ # - Manual dispatch available for ad-hoc regression testing
33
+ # - Separate artifact naming prevents interference with main CI
34
+ #
35
+ # This approach ensures comprehensive coverage while keeping PR CI fast and focused
36
+ # on code-related issues rather than infrastructure/system regressions.
37
+
38
+ name: CI Linux Complementary Ubuntu x86_64 GNU
39
+
40
+ concurrency:
41
+ group: ${{ github.workflow }}-${{ github.ref }}
42
+ cancel-in-progress: true
43
+
44
+ on:
45
+ schedule:
46
+ - cron: '0 2 */3 * *'
47
+ workflow_dispatch:
48
+ push:
49
+ paths:
50
+ - '.github/workflows/ci_linux_ubuntu_x86_64_gnu_complementary.yml'
51
+ branches: [ main, master ]
52
+ pull_request:
53
+ paths:
54
+ - '.github/workflows/ci_linux_ubuntu_x86_64_gnu_complementary.yml'
55
+ branches: [ main, master ]
56
+
57
+ permissions:
58
+ contents: read
59
+
60
+ env:
61
+ BUNDLE_RETRY: 6
62
+ BUNDLE_JOBS: 4
63
+
64
+ jobs:
65
+ build_precompiled:
66
+ timeout-minutes: 30
67
+ # We precompile on older Ubuntu and check compatibility by running specs since we aim to
68
+ # release only one precompiled version for all supported Ubuntu versions
69
+ # This is why we do not want Renovate to update it automatically
70
+ runs-on: ubuntu-22.04 # renovate: ignore
71
+ steps:
72
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
73
+ with:
74
+ fetch-depth: 0
75
+ - name: Install build dependencies
76
+ run: |
77
+ sudo apt-get update
78
+ sudo apt-get install -y --no-install-recommends \
79
+ build-essential \
80
+ gcc \
81
+ g++ \
82
+ make \
83
+ tar \
84
+ gzip \
85
+ wget \
86
+ curl \
87
+ file \
88
+ pkg-config \
89
+ autoconf \
90
+ automake \
91
+ libtool \
92
+ python3 \
93
+ git \
94
+ ca-certificates \
95
+ patch \
96
+ libsasl2-dev \
97
+ libssl-dev \
98
+ zlib1g-dev \
99
+ libzstd-dev \
100
+ bison \
101
+ flex \
102
+ perl \
103
+ binutils-dev
104
+ - name: Cache build-tmp directory
105
+ uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
106
+ with:
107
+ path: ext/build-tmp
108
+ key: build-tmp-${{ runner.os }}-${{ hashFiles('ext/*.sh', 'ext/Rakefile') }}-v2
109
+ - name: Build precompiled librdkafka.so
110
+ run: |
111
+ cd ext
112
+ ./build_linux_x86_64_gnu.sh
113
+ - name: Upload precompiled library
114
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
115
+ with:
116
+ name: librdkafka-precompiled-ubuntu-complementary
117
+ path: ext/
118
+ retention-days: 1
119
+
120
+ specs_install:
121
+ timeout-minutes: 50
122
+ strategy:
123
+ fail-fast: false
124
+ matrix:
125
+ ruby:
126
+ - '3.5.0-preview1'
127
+ - '3.4'
128
+ - '3.3'
129
+ - '3.2'
130
+ - '3.1'
131
+ - 'jruby-10.0'
132
+ ubuntu-version: ['22.04', '24.04']
133
+ include:
134
+ - ruby: '3.4'
135
+ coverage: 'true'
136
+ - ruby: 'jruby-10.0'
137
+ continue-on-error: true
138
+ runs-on: ubuntu-${{ matrix.ubuntu-version }}
139
+ steps:
140
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
141
+ with:
142
+ fetch-depth: 0
143
+ - name: Set up Ruby
144
+ uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
145
+ with:
146
+ ruby-version: ${{matrix.ruby}}
147
+ bundler-cache: false
148
+ - name: Start Kafka with Docker Compose
149
+ run: |
150
+ ./ext/generate-ssl-certs.sh
151
+ docker compose -f docker-compose-ssl.yml up -d
152
+ echo "Waiting for Kafka to be ready..."
153
+
154
+ sleep 10
155
+
156
+ echo "=== Container status ==="
157
+ docker compose ps kafka
158
+
159
+ for i in {1..30}; do
160
+ echo "=== Attempt $i/30 ==="
161
+
162
+ echo "Testing kafka-topics command..."
163
+ if docker compose exec -T kafka kafka-topics --bootstrap-server localhost:9092 --list >/dev/null 2>&1; then
164
+ echo "Kafka topics command succeeded!"
165
+ break
166
+ else
167
+ echo "Kafka topics command failed (exit code: $?)"
168
+ fi
169
+
170
+ echo "Sleeping 2 seconds..."
171
+ sleep 2
172
+ done
173
+ - name: Install dependencies
174
+ env:
175
+ RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
176
+ continue-on-error: ${{ matrix.continue-on-error || false }}
177
+ run: |
178
+ bundle install
179
+ - name: Build gem with mini_portile
180
+ continue-on-error: ${{ matrix.continue-on-error || false }}
181
+ run: |
182
+ set -e
183
+ cd ext && bundle exec rake
184
+ cd ..
185
+ - name: Run all specs in SSL (compiled flow)
186
+ env:
187
+ RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
188
+ KAFKA_SSL_ENABLED: "true"
189
+ continue-on-error: ${{ matrix.continue-on-error || false }}
190
+ run: |
191
+ bundle exec rspec
192
+
193
+ - name: Run integration specs (compiled flow)
194
+ continue-on-error: ${{ matrix.continue-on-error || false }}
195
+ run: |
196
+ for file in $(ls spec/integrations/*_spec.rb); do
197
+ echo "Running $file with Ruby ${{ matrix.ruby }}";
198
+ bundle exec ruby "$file" || exit 1;
199
+ done
200
+
201
+ specs_precompiled:
202
+ timeout-minutes: 30
203
+ needs: build_precompiled
204
+ strategy:
205
+ fail-fast: false
206
+ matrix:
207
+ ruby:
208
+ - '3.5.0-preview1'
209
+ - '3.4'
210
+ - '3.3'
211
+ - '3.2'
212
+ - '3.1'
213
+ ubuntu-version: ['22.04', '24.04']
214
+
215
+ runs-on: ubuntu-${{ matrix.ubuntu-version }}
216
+ steps:
217
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
218
+ with:
219
+ fetch-depth: 0
220
+ - name: Download precompiled library
221
+ uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
222
+ with:
223
+ name: librdkafka-precompiled-ubuntu-complementary
224
+ path: ext/
225
+ - name: Set up Ruby
226
+ uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
227
+ with:
228
+ ruby-version: ${{ matrix.ruby }}
229
+ bundler-cache: false
230
+ - name: Start Kafka with Docker Compose
231
+ run: |
232
+ ./ext/generate-ssl-certs.sh
233
+ docker compose -f docker-compose-ssl.yml up -d
234
+ echo "Waiting for Kafka to be ready..."
235
+
236
+ sleep 10
237
+
238
+ echo "=== Container status ==="
239
+ docker compose ps kafka
240
+ for i in {1..30}; do
241
+ echo "=== Attempt $i/30 ==="
242
+
243
+ echo "Testing kafka-topics command..."
244
+ if docker compose exec -T kafka kafka-topics --bootstrap-server localhost:9092 --list >/dev/null 2>&1; then
245
+ echo "Kafka topics command succeeded!"
246
+ break
247
+ else
248
+ echo "Kafka topics command failed (exit code: $?)"
249
+ fi
250
+
251
+ echo "Sleeping 2 seconds..."
252
+ sleep 2
253
+ done
254
+ - name: Install bundle with precompiled library
255
+ env:
256
+ RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
257
+ run: |
258
+ bundle install
259
+ echo "Bundle install completed with precompiled library"
260
+ - name: Remove build dependencies to test static linking
261
+ continue-on-error: true
262
+ run: |
263
+ echo "Removing build dependencies to verify precompiled library is truly self-contained..."
264
+
265
+ # Remove packages one by one to avoid dependency conflicts
266
+ packages_to_remove="build-essential gcc g++ make patch tar wget libsasl2-dev libssl-dev zlib1g-dev libzstd-dev"
267
+
268
+ for package in $packages_to_remove; do
269
+ if dpkg -l | grep -q "^ii.*$package "; then
270
+ echo "Removing $package..."
271
+ sudo dpkg --remove --force-depends $package 2>/dev/null || echo "Could not remove $package"
272
+ else
273
+ echo "$package is not installed"
274
+ fi
275
+ done
276
+
277
+ echo "Build dependencies removal completed"
278
+ echo "Remaining build tools:"
279
+ which gcc g++ make 2>/dev/null || echo "No build tools found in PATH (good!)"
280
+ - name: Run specs with precompiled library and SSL
281
+ env:
282
+ RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
283
+ KAFKA_SSL_ENABLED: "true"
284
+ run: |
285
+ bundle exec rspec
286
+
287
+ - name: Run integration specs (precompiled flow)
288
+ env:
289
+ RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
290
+ run: |
291
+ for file in $(ls spec/integrations/*_spec.rb); do
292
+ echo "Running $file with Ruby ${{ matrix.ruby }} (precompiled)";
293
+ bundle exec ruby "$file" || exit 1;
294
+ done
@@ -23,7 +23,7 @@ env:
23
23
 
24
24
  jobs:
25
25
  specs_install:
26
- timeout-minutes: 30
26
+ timeout-minutes: 45
27
27
  strategy:
28
28
  fail-fast: false
29
29
  matrix:
@@ -54,7 +54,7 @@ jobs:
54
54
  brew list krb5 &>/dev/null || brew install krb5
55
55
  echo "/opt/homebrew/bin" >> $GITHUB_PATH
56
56
  - name: Set up Ruby
57
- uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0
57
+ uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
58
58
  with:
59
59
  ruby-version: ${{matrix.ruby}}
60
60
  bundler-cache: false
@@ -150,7 +150,7 @@ jobs:
150
150
  brew list krb5 &>/dev/null || brew install krb5
151
151
  echo "/opt/homebrew/bin" >> $GITHUB_PATH
152
152
  - name: Cache build-tmp directory
153
- uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
153
+ uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
154
154
  with:
155
155
  path: ext/build-tmp-macos
156
156
  key: build-tmp-${{ runner.os }}-${{ hashFiles('ext/*.sh', 'ext/Rakefile') }}-v2
@@ -193,12 +193,12 @@ jobs:
193
193
  with:
194
194
  fetch-depth: 0
195
195
  - name: Download precompiled library
196
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
196
+ uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
197
197
  with:
198
198
  name: librdkafka-precompiled-macos
199
199
  path: ext/
200
200
  - name: Set up Ruby
201
- uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0
201
+ uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
202
202
  with:
203
203
  ruby-version: ${{ matrix.ruby }}
204
204
  bundler-cache: false
@@ -0,0 +1,65 @@
1
+ name: Push Linux aarch64 GNU Platform Gem
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - v*
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ env:
12
+ BUNDLE_RETRY: 6
13
+ BUNDLE_JOBS: 4
14
+
15
+ jobs:
16
+ push:
17
+ if: github.repository_owner == 'karafka'
18
+ timeout-minutes: 30
19
+ # Same as CI, we build on the oldest possible for ABI compatibility
20
+ runs-on: ubuntu-22.04-arm # renovate: ignore
21
+ environment: deployment
22
+ permissions:
23
+ contents: write
24
+ id-token: write
25
+ steps:
26
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
27
+ with:
28
+ fetch-depth: 0
29
+ - name: Install build dependencies
30
+ run: |
31
+ sudo apt-get update
32
+ sudo apt-get install -y --no-install-recommends \
33
+ build-essential \
34
+ gcc \
35
+ make \
36
+ patch \
37
+ tar \
38
+ wget \
39
+ ca-certificates \
40
+ libsasl2-dev \
41
+ libssl-dev \
42
+ zlib1g-dev \
43
+ libzstd-dev
44
+ - name: Cache build-tmp directory
45
+ uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
46
+ with:
47
+ path: ext/build-tmp
48
+ key: build-tmp-${{ runner.os }}-${{ hashFiles('ext/*.sh') }}
49
+ - name: Set up Ruby
50
+ uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
51
+ with:
52
+ ruby-version: '3.4'
53
+ bundler-cache: false
54
+ - name: Build precompiled librdkafka.so
55
+ run: |
56
+ cd ext
57
+ ./build_linux_aarch64_gnu.sh
58
+ - name: Configure trusted publishing credentials
59
+ uses: rubygems/configure-rubygems-credentials@bc6dd217f8a4f919d6835fcfefd470ef821f5c44 # v1.0.0
60
+ - name: Build and push platform-specific gem
61
+ run: |
62
+ gem build *.gemspec
63
+ gem push *.gem
64
+ env:
65
+ RUBY_PLATFORM: 'aarch64-linux-gnu'
@@ -42,12 +42,12 @@ jobs:
42
42
  zlib1g-dev \
43
43
  libzstd-dev
44
44
  - name: Cache build-tmp directory
45
- uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
45
+ uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
46
46
  with:
47
47
  path: ext/build-tmp
48
48
  key: build-tmp-${{ runner.os }}-${{ hashFiles('ext/*.sh') }}
49
49
  - name: Set up Ruby
50
- uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0
50
+ uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
51
51
  with:
52
52
  ruby-version: '3.4'
53
53
  bundler-cache: false
@@ -31,7 +31,7 @@ jobs:
31
31
  - name: Configure git safe directory
32
32
  run: git config --global --add safe.directory /__w/karafka-rdkafka/karafka-rdkafka
33
33
  - name: Cache build-tmp directory
34
- uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
34
+ uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
35
35
  with:
36
36
  path: ext/build-tmp-musl
37
37
  key: build-tmp-musl-${{ runner.os }}-${{ hashFiles('ext/*.sh', 'ext/Rakefile') }}-v2
@@ -60,12 +60,12 @@ jobs:
60
60
  with:
61
61
  fetch-depth: 0
62
62
  - name: Download precompiled library
63
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
63
+ uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
64
64
  with:
65
65
  name: librdkafka-precompiled-musl
66
66
  path: ext/
67
67
  - name: Set up Ruby
68
- uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0
68
+ uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
69
69
  with:
70
70
  ruby-version: '3.4'
71
71
  bundler-cache: false
@@ -31,12 +31,12 @@ jobs:
31
31
  brew list krb5 &>/dev/null || brew install krb5
32
32
  echo "/opt/homebrew/bin" >> $GITHUB_PATH
33
33
  - name: Cache build-tmp directory
34
- uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
34
+ uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
35
35
  with:
36
36
  path: ext/build-tmp-macos
37
37
  key: build-tmp-${{ runner.os }}-${{ hashFiles('ext/*.sh', 'ext/Rakefile') }}-v2
38
38
  - name: Set up Ruby
39
- uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0
39
+ uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
40
40
  with:
41
41
  ruby-version: '3.4'
42
42
  bundler-cache: false
@@ -24,7 +24,7 @@ jobs:
24
24
  fetch-depth: 0
25
25
 
26
26
  - name: Set up Ruby
27
- uses: ruby/setup-ruby@472790540115ce5bd69d399a020189a8c87d641f # v1.247.0
27
+ uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
28
28
  with:
29
29
  bundler-cache: false
30
30
 
@@ -0,0 +1,30 @@
1
+ name: Trigger Wiki Refresh
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ push:
7
+ branches: [main]
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@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # v3.0.0
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
+ }
@@ -4,7 +4,7 @@ on:
4
4
  paths:
5
5
  - '.github/workflows/**'
6
6
  jobs:
7
- verify:
7
+ verify_action_pins:
8
8
  runs-on: ubuntu-latest
9
9
  steps:
10
10
  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
data/.gitignore CHANGED
@@ -13,3 +13,4 @@ coverage
13
13
  vendor
14
14
  .idea/
15
15
  out/
16
+ ssl/
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
1
  --require spec_helper
2
2
  --format documentation
3
+ --pattern spec/lib/**/*_spec.rb
data/CHANGELOG.md CHANGED
@@ -1,9 +1,18 @@
1
1
  # Rdkafka Changelog
2
2
 
3
+ ## 0.21.0 (2025-08-18)
4
+ - [Enhancement] Support explicit Debian testing due to lib issues.
5
+ - [Enhancement] Support ARM64 Gnu precompilation.
6
+ - [Enhancement] Bump librdkafka to 2.11.0.
7
+ - [Enhancement] Improve what symbols are exposed outside of the precompiled extensions.
8
+ - [Enhancement] Introduce an integration suite layer for non RSpec specs execution.
9
+ - [Fix] Add `json` gem as a dependency (was missing but used).
10
+
3
11
  ## 0.20.1 (2025-07-17)
4
12
  - [Enhancement] Drastically increase number of platforms in the integration suite
5
13
  - [Fix] Support Ubuntu `22.04` and older Alpine precompiled versions
6
14
  - [Fix] FFI::DynamicLibrary.load_library': Could not open library
15
+ - [Change] Add new CI action to trigger auto-doc refresh.
7
16
 
8
17
  ## 0.20.0 (2025-07-17)
9
18
  - **[Feature]** Add precompiled `x86_64-linux-gnu` setup.