karafka-rdkafka 0.20.0.rc3-x86_64-linux-gnu → 0.20.0-x86_64-linux-gnu

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: 8d2a5aa11f12382418392f01e4ec107949661fec05506f0201346f126525c434
4
- data.tar.gz: b55416183eeed99b3440c9d8f65d13748fce7cb3d315984e5b6fccb0e2b20b0a
3
+ metadata.gz: f2302a4f1b62d016efbb5e16c3085ee6d6ff93012fcca61eb8d5bb1ed781a663
4
+ data.tar.gz: 6d45647c9e75bee42913e35f98fe1cd0fbe4c3c46c5971906e0fdae3dce8a8f6
5
5
  SHA512:
6
- metadata.gz: e91fe7846b57967aeef2bce1cd3bf72e3ee206cfdb4ed50099684cbef1b1a347420cdda5d3002429d6ab0e94b78cc8a28864a6a6e1886f9223b60145706fbac0
7
- data.tar.gz: d22c1226b32a671145323e52a9e22edb94aaa4e9188791912958d104f93e27a15e6b16883ba5f36e3beccaf9132e5155a67db5c2728381ec59b72220ba171ce1
6
+ metadata.gz: c5634d9d77acc3a136c863125ab9168f3cfa6e0bf30f70cb802ced1546bb112d59971837c9b117076cbeab8bb8734f4f11ecea6efa06a7a08520f361fe849133
7
+ data.tar.gz: cfc4240339689bcbabcb66641900d555341e941f5dfc62ef577eac2ead6a94c9c12271f463aa7a5b2235d37b079bfb750a417bee0e24092f6c1a5dfb8df0c09d
@@ -1,4 +1,5 @@
1
1
  name: CI Linux x86_64 GNU
2
+
2
3
  concurrency:
3
4
  group: ${{ github.workflow }}-${{ github.ref }}
4
5
  cancel-in-progress: true
@@ -0,0 +1,205 @@
1
+ name: CI Linux x86_64 musl
2
+
3
+ concurrency:
4
+ group: ${{ github.workflow }}-${{ github.ref }}
5
+ cancel-in-progress: true
6
+
7
+ on:
8
+ pull_request:
9
+ branches: [ main, master ]
10
+ push:
11
+ branches: [ main, master ]
12
+ schedule:
13
+ - cron: '0 1 * * *'
14
+
15
+ permissions:
16
+ contents: read
17
+
18
+ env:
19
+ BUNDLE_RETRY: 6
20
+ BUNDLE_JOBS: 4
21
+
22
+ jobs:
23
+ build_install:
24
+ timeout-minutes: 30
25
+ runs-on: ubuntu-latest
26
+ container:
27
+ image: alpine:3.22@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1
28
+ steps:
29
+ - name: Install dependencies
30
+ run: |
31
+ apk add --no-cache git curl ca-certificates build-base linux-headers \
32
+ pkgconf perl autoconf automake libtool bison flex file \
33
+ ruby ruby-dev ruby-bundler bash zstd-dev zlib zlib-dev openssl-dev cyrus-sasl-dev
34
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
35
+ with:
36
+ fetch-depth: 0
37
+ - name: Configure git safe directory
38
+ run: git config --global --add safe.directory /__w/karafka-rdkafka/karafka-rdkafka
39
+ - name: Build gem with mini_portile
40
+ run: |
41
+ set -e
42
+ bundle config set --local path 'vendor/bundle'
43
+ bundle install
44
+ cd ext && bundle exec rake
45
+ cd ..
46
+ - name: Upload built gem and bundle
47
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
48
+ with:
49
+ name: rdkafka-built-gem-musl
50
+ path: |
51
+ vendor/bundle/
52
+ .bundle/
53
+ ext/
54
+ lib/
55
+ retention-days: 1
56
+
57
+ specs_install:
58
+ timeout-minutes: 30
59
+ runs-on: ubuntu-latest
60
+ needs: build_install
61
+ strategy:
62
+ fail-fast: false
63
+ matrix:
64
+ ruby:
65
+ - '3.4'
66
+ - '3.3'
67
+ - '3.2'
68
+ - '3.1'
69
+ include:
70
+ - ruby: '3.4'
71
+ coverage: 'true'
72
+ steps:
73
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
74
+ with:
75
+ fetch-depth: 0
76
+ - name: Download built gem
77
+ uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
78
+ with:
79
+ name: rdkafka-built-gem-musl
80
+ path: ./
81
+ - name: Start Kafka with Docker Compose
82
+ run: |
83
+ docker compose up -d
84
+ echo "Waiting for Kafka to be ready..."
85
+ sleep 10
86
+
87
+ for i in {1..30}; do
88
+ if docker compose exec -T kafka kafka-topics --bootstrap-server localhost:9092 --list >/dev/null 2>&1; then
89
+ echo "Kafka topics command succeeded!"
90
+ break
91
+ fi
92
+ sleep 2
93
+ done
94
+ - name: Run all specs
95
+ env:
96
+ GITHUB_COVERAGE: ${{ matrix.coverage }}
97
+ RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
98
+ run: |
99
+ docker run --rm \
100
+ --network host \
101
+ -v "${{ github.workspace }}:/workspace" \
102
+ -w /workspace \
103
+ -e "GITHUB_COVERAGE=${{ matrix.coverage }}" \
104
+ -e "RDKAFKA_EXT_PATH=/workspace/ext" \
105
+ ruby:${{ matrix.ruby }}-alpine \
106
+ sh -c 'apk add --no-cache git build-base linux-headers bash \
107
+ cyrus-sasl \
108
+ cyrus-sasl-login \
109
+ cyrus-sasl-crammd5 \
110
+ cyrus-sasl-digestmd5 \
111
+ cyrus-sasl-gssapiv2 \
112
+ cyrus-sasl-scram \
113
+ krb5-libs \
114
+ openssl \
115
+ zlib \
116
+ zlib-dev \
117
+ zstd-libs && \
118
+ git config --global --add safe.directory /workspace && \
119
+ bundle config set --local path vendor/bundle && \
120
+ bundle install && \
121
+ bundle exec ruby -S rspec'
122
+ build_precompiled:
123
+ timeout-minutes: 45
124
+ runs-on: ubuntu-latest
125
+ container:
126
+ image: alpine:3.22@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1
127
+ steps:
128
+ - name: Install dependencies
129
+ run: |
130
+ apk add --no-cache git curl ca-certificates build-base linux-headers \
131
+ pkgconf perl autoconf automake libtool bison flex file bash wget zstd-dev \
132
+ openssl-dev cyrus-sasl-dev cyrus-sasl cyrus-sasl-login \
133
+ cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapiv2 cyrus-sasl-scram \
134
+ krb5-libs openssl zlib zlib-dev zstd-libs
135
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
136
+ with:
137
+ fetch-depth: 0
138
+ - name: Configure git safe directory
139
+ run: git config --global --add safe.directory /__w/karafka-rdkafka/karafka-rdkafka
140
+ - name: Cache build-tmp directory
141
+ uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
142
+ with:
143
+ path: ext/build-tmp-musl
144
+ key: build-tmp-musl-${{ runner.os }}-${{ hashFiles('ext/*.sh', 'ext/Rakefile') }}-v2
145
+ - name: Build precompiled librdkafka.so
146
+ run: |
147
+ cd ext
148
+ bash ./build_linux_x86_64_musl.sh
149
+ - name: Upload precompiled library
150
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
151
+ with:
152
+ name: librdkafka-precompiled-musl
153
+ path: ext/
154
+ retention-days: 1
155
+
156
+ specs_precompiled:
157
+ timeout-minutes: 30
158
+ runs-on: ubuntu-latest
159
+ needs: build_precompiled
160
+ strategy:
161
+ fail-fast: false
162
+ matrix:
163
+ ruby:
164
+ - '3.4'
165
+ - '3.3'
166
+ - '3.2'
167
+ - '3.1'
168
+ include:
169
+ - ruby: '3.4'
170
+ coverage: 'true'
171
+ steps:
172
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
173
+ with:
174
+ fetch-depth: 0
175
+ - name: Download precompiled library
176
+ uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
177
+ with:
178
+ name: librdkafka-precompiled-musl
179
+ path: ext/
180
+ - name: Start Kafka with Docker Compose
181
+ run: |
182
+ docker compose up -d
183
+ echo "Waiting for Kafka to be ready..."
184
+ sleep 10
185
+
186
+ for i in {1..30}; do
187
+ if docker compose exec -T kafka kafka-topics --bootstrap-server localhost:9092 --list >/dev/null 2>&1; then
188
+ echo "Kafka topics command succeeded!"
189
+ break
190
+ fi
191
+ sleep 2
192
+ done
193
+ - name: Run specs with precompiled library
194
+ env:
195
+ GITHUB_COVERAGE: ${{ matrix.coverage }}
196
+ RDKAFKA_EXT_PATH: ${{ github.workspace }}/ext
197
+ run: |
198
+ docker run --rm \
199
+ --network host \
200
+ -v "${{ github.workspace }}:/workspace" \
201
+ -w /workspace \
202
+ -e "GITHUB_COVERAGE=${{ matrix.coverage }}" \
203
+ -e "RDKAFKA_EXT_PATH=/workspace/ext" \
204
+ ruby:${{ matrix.ruby }}-alpine \
205
+ sh -c 'apk add --no-cache git build-base linux-headers bash && git config --global --add safe.directory /workspace && bundle config set --local path vendor/bundle && bundle install && bundle exec ruby -S rspec'
@@ -1,7 +1,9 @@
1
1
  name: CI macOS ARM64
2
+
2
3
  concurrency:
3
4
  group: ${{ github.workflow }}-${{ github.ref }}
4
5
  cancel-in-progress: true
6
+
5
7
  on:
6
8
  pull_request:
7
9
  branches: [ main, master ]
@@ -9,13 +11,16 @@ on:
9
11
  branches: [ main, master ]
10
12
  schedule:
11
13
  - cron: '0 1 * * *'
14
+
12
15
  permissions:
13
16
  contents: read
17
+
14
18
  env:
15
19
  BUNDLE_RETRY: 6
16
20
  BUNDLE_JOBS: 4
17
21
  # Renovate can track and update this version
18
22
  CONFLUENT_VERSION: "8.0.0"
23
+
19
24
  jobs:
20
25
  build_install:
21
26
  timeout-minutes: 30
@@ -1,13 +1,17 @@
1
1
  name: Push Linux x86_64 GNU Platform Gem
2
+
2
3
  on:
3
4
  push:
4
5
  tags:
5
6
  - v*
7
+
6
8
  permissions:
7
9
  contents: read
10
+
8
11
  env:
9
12
  BUNDLE_RETRY: 6
10
13
  BUNDLE_JOBS: 4
14
+
11
15
  jobs:
12
16
  push:
13
17
  if: github.repository_owner == 'karafka'
@@ -51,7 +55,7 @@ jobs:
51
55
  cd ext
52
56
  ./build_linux_x86_64_gnu.sh
53
57
  - name: Configure trusted publishing credentials
54
- uses: rubygems/configure-rubygems-credentials@v1.0.0
58
+ uses: rubygems/configure-rubygems-credentials@bc6dd217f8a4f919d6835fcfefd470ef821f5c44 # v1.0.0
55
59
  - name: Build and push platform-specific gem
56
60
  run: |
57
61
  gem build *.gemspec
@@ -0,0 +1,77 @@
1
+ name: Push Linux x86_64 musl Platform Gem
2
+ on:
3
+ push:
4
+ tags:
5
+ - v*
6
+ permissions:
7
+ contents: read
8
+ env:
9
+ BUNDLE_RETRY: 6
10
+ BUNDLE_JOBS: 4
11
+ jobs:
12
+ build:
13
+ if: github.repository_owner == 'karafka'
14
+ timeout-minutes: 30
15
+ runs-on: ubuntu-latest
16
+ environment: deployment
17
+ container:
18
+ image: alpine:3.22@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1
19
+ steps:
20
+ - name: Install dependencies
21
+ run: |
22
+ apk add --no-cache git curl ca-certificates build-base linux-headers \
23
+ pkgconf perl autoconf automake libtool bison flex file bash wget zstd-dev \
24
+ openssl-dev cyrus-sasl-dev cyrus-sasl cyrus-sasl-login \
25
+ cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapiv2 cyrus-sasl-scram \
26
+ krb5-libs openssl zlib zlib-dev zstd-libs
27
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
28
+ with:
29
+ fetch-depth: 0
30
+ - name: Configure git safe directory
31
+ run: git config --global --add safe.directory /__w/karafka-rdkafka/karafka-rdkafka
32
+ - name: Cache build-tmp directory
33
+ uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
34
+ with:
35
+ path: ext/build-tmp-musl
36
+ key: build-tmp-musl-${{ runner.os }}-${{ hashFiles('ext/*.sh', 'ext/Rakefile') }}-v2
37
+ - name: Build precompiled librdkafka.so
38
+ run: |
39
+ cd ext
40
+ bash ./build_linux_x86_64_musl.sh
41
+ - name: Upload precompiled library
42
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
43
+ with:
44
+ name: librdkafka-precompiled-musl
45
+ path: ext/
46
+ retention-days: 1
47
+ push:
48
+ if: github.repository_owner == 'karafka'
49
+ timeout-minutes: 30
50
+ runs-on: ubuntu-latest
51
+ needs: build
52
+ environment: deployment
53
+ permissions:
54
+ contents: write
55
+ id-token: write
56
+ steps:
57
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
58
+ with:
59
+ fetch-depth: 0
60
+ - name: Download precompiled library
61
+ uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
62
+ with:
63
+ name: librdkafka-precompiled-musl
64
+ path: ext/
65
+ - name: Set up Ruby
66
+ uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0
67
+ with:
68
+ ruby-version: '3.4'
69
+ bundler-cache: false
70
+ - name: Configure trusted publishing credentials
71
+ uses: rubygems/configure-rubygems-credentials@bc6dd217f8a4f919d6835fcfefd470ef821f5c44 # v1.0.0
72
+ - name: Build and push platform-specific gem
73
+ run: |
74
+ gem build *.gemspec
75
+ gem push *.gem
76
+ env:
77
+ RUBY_PLATFORM: 'x86_64-linux-musl'
@@ -0,0 +1,54 @@
1
+ name: Push macOS ARM64 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
+ runs-on: macos-latest
20
+ environment: deployment
21
+ permissions:
22
+ contents: write
23
+ id-token: write
24
+ steps:
25
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
26
+ with:
27
+ fetch-depth: 0
28
+ - name: Install Bash 4+ and Kerberos
29
+ run: |
30
+ brew install bash
31
+ brew list krb5 &>/dev/null || brew install krb5
32
+ echo "/opt/homebrew/bin" >> $GITHUB_PATH
33
+ - name: Cache build-tmp directory
34
+ uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
35
+ with:
36
+ path: ext/build-tmp-macos
37
+ key: build-tmp-${{ runner.os }}-${{ hashFiles('ext/*.sh', 'ext/Rakefile') }}-v2
38
+ - name: Set up Ruby
39
+ uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0
40
+ with:
41
+ ruby-version: '3.4'
42
+ bundler-cache: false
43
+ - name: Build precompiled librdkafka for macOS ARM64
44
+ run: |
45
+ cd ext
46
+ /opt/homebrew/bin/bash ./build_macos_arm64.sh
47
+ - name: Configure trusted publishing credentials
48
+ uses: rubygems/configure-rubygems-credentials@bc6dd217f8a4f919d6835fcfefd470ef821f5c44 # v1.0.0
49
+ - name: Build and push platform-specific gem
50
+ run: |
51
+ gem build *.gemspec
52
+ gem push *.gem
53
+ env:
54
+ RUBY_PLATFORM: 'arm64-darwin'
@@ -24,7 +24,7 @@ jobs:
24
24
  fetch-depth: 0
25
25
 
26
26
  - name: Set up Ruby
27
- uses: ruby/setup-ruby@a4effe49ee8ee5b8b5091268c473a4628afb5651 # v1.245.0
27
+ uses: ruby/setup-ruby@472790540115ce5bd69d399a020189a8c87d641f # v1.247.0
28
28
  with:
29
29
  bundler-cache: false
30
30
 
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.4.4
1
+ 3.4.5
data/CHANGELOG.md CHANGED
@@ -1,8 +1,15 @@
1
1
  # Rdkafka Changelog
2
2
 
3
- ## 0.20.0 (Unreleased)
3
+ ## 0.20.0 (2025-07-17)
4
4
  - **[Feature]** Add precompiled `x86_64-linux-gnu` setup.
5
+ - **[Feature]** Add precompiled `x86_64-linux-musl` setup.
5
6
  - **[Feature]** Add precompiled `macos_arm64` setup.
7
+ - [Enhancement] Run all specs on each of the platforms with and without precompilation.
8
+ - [Enhancement] Support transactional id in the ACL API.
9
+ - [Fix] Fix a case where using empty key on the `musl` architecture would cause a segfault.
10
+ - [Fix] Fix for null pointer reference bypass on empty string being too wide causing segfault.
11
+
12
+ **Note**: Precompiled extensions are a new feature in this release. While they significantly improve installation speed and reduce build dependencies, they should be thoroughly tested in your staging environment before deploying to production. If you encounter any issues with precompiled extensions, you can fall back to building from sources. For more information, see the [Native Extensions documentation](https://karafka.io/docs/Development-Native-Extensions/).
6
13
 
7
14
  ## 0.19.5 (2025-05-30)
8
15
  - [Enhancement] Allow for producing to non-existing topics with `key` and `partition_key` present.
data/README.md CHANGED
@@ -163,7 +163,7 @@ bundle exec rake produce_messages
163
163
 
164
164
  | rdkafka-ruby | librdkafka | patches |
165
165
  |-|-|-|
166
- | 0.20.x (Unreleased) | 2.8.0 (2025-01-07) | yes |
166
+ | 0.20.x (2025-07-17) | 2.8.0 (2025-01-07) | yes |
167
167
  | 0.19.x (2025-01-20) | 2.8.0 (2025-01-07) | yes |
168
168
  | 0.18.0 (2024-11-26) | 2.6.1 (2024-11-18) | yes |
169
169
  | 0.17.4 (2024-09-02) | 2.5.3 (2024-09-02) | yes |