karafka-core 2.5.2 → 2.5.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 +4 -4
- data/.github/workflows/ci.yml +3 -2
- data/.github/workflows/push.yml +1 -1
- data/.github/workflows/trigger-wiki-refresh.yml +30 -0
- data/.github/workflows/verify-action-pins.yml +1 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +9 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +3 -1
- data/karafka-core.gemspec +0 -1
- data/lib/karafka/core/configurable/node.rb +46 -9
- data/lib/karafka/core/configurable.rb +3 -17
- data/lib/karafka/core/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c18e5fcc92a84b8eb5b27e5948947edb009da964e68861e63bfb54c6131a533
|
4
|
+
data.tar.gz: 3d1da54043e8f87a05ea8b9caba3a5c3fffba4bbe582f1dadb21444eb24d7f17
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e4bd0ec7a8e0ecc72317cf404a0b5be21025182043063d343ee75ac068c17d24a75c9679dcff6bae4b795592bdb66d649e9cedacec4e9d45416c7d0accf9103
|
7
|
+
data.tar.gz: 4a71c0c9f4cdb03136af352ae77fbe94de8ddd89f47c99f02c22f7634d52509298c3168c9e1487ef6fdf7dadda535bd324d6242552ac9ef501906247c7f77bf5
|
data/.github/workflows/ci.yml
CHANGED
@@ -24,6 +24,7 @@ jobs:
|
|
24
24
|
fail-fast: false
|
25
25
|
matrix:
|
26
26
|
ruby:
|
27
|
+
- '3.5.0-preview1'
|
27
28
|
- '3.4'
|
28
29
|
- '3.3'
|
29
30
|
- '3.2'
|
@@ -40,7 +41,7 @@ jobs:
|
|
40
41
|
run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS"
|
41
42
|
|
42
43
|
- name: Set up Ruby
|
43
|
-
uses: ruby/setup-ruby@
|
44
|
+
uses: ruby/setup-ruby@bb6434c747fa7022e12fa1cae2a0951fcffcff26 # v1.253.0
|
44
45
|
with:
|
45
46
|
ruby-version: ${{matrix.ruby}}
|
46
47
|
bundler: 'latest'
|
@@ -71,7 +72,7 @@ jobs:
|
|
71
72
|
with:
|
72
73
|
fetch-depth: 0
|
73
74
|
- name: Set up Ruby
|
74
|
-
uses: ruby/setup-ruby@
|
75
|
+
uses: ruby/setup-ruby@bb6434c747fa7022e12fa1cae2a0951fcffcff26 # v1.253.0
|
75
76
|
with:
|
76
77
|
ruby-version: 3.4
|
77
78
|
- name: Install latest bundler
|
data/.github/workflows/push.yml
CHANGED
@@ -0,0 +1,30 @@
|
|
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@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
|
+
}
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.4.
|
1
|
+
3.4.5
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Karafka Core Changelog
|
2
2
|
|
3
|
+
## 2.5.4 (2025-08-04)
|
4
|
+
- [Fix] Fix old regression on misbehaviour when Object methods are overwritten.
|
5
|
+
|
6
|
+
## 2.5.3 (2025-08-04)
|
7
|
+
- [Enhancement] Optimize code to mitigate the Ruby performance warning from `Karafka::Core::Configurable::Node` (#208)
|
8
|
+
- [Enhancement] Raise errors on detected Ruby warnings.
|
9
|
+
- [Change] Remove unused Ruby 2.7 code.
|
10
|
+
- [Change] Remove `funding_uri` from the gemspec to minimize double-funding info.
|
11
|
+
|
3
12
|
## 2.5.2 (2025-06-11)
|
4
13
|
- [Enhancement] Support `#unsubscribe`.
|
5
14
|
- [Enhancement] Allow for providing a root scope path for error keys.
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
karafka-core (2.5.
|
4
|
+
karafka-core (2.5.4)
|
5
5
|
karafka-rdkafka (>= 0.19.2, < 0.21.0)
|
6
6
|
logger (>= 1.6.0)
|
7
7
|
|
@@ -48,6 +48,7 @@ GEM
|
|
48
48
|
simplecov_json_formatter (~> 0.1)
|
49
49
|
simplecov-html (0.13.1)
|
50
50
|
simplecov_json_formatter (0.1.4)
|
51
|
+
warning (1.5.0)
|
51
52
|
|
52
53
|
PLATFORMS
|
53
54
|
aarch64-linux-gnu
|
@@ -67,6 +68,7 @@ DEPENDENCIES
|
|
67
68
|
karafka-core!
|
68
69
|
rspec
|
69
70
|
simplecov
|
71
|
+
warning
|
70
72
|
|
71
73
|
BUNDLED WITH
|
72
74
|
2.6.9
|
data/karafka-core.gemspec
CHANGED
@@ -25,7 +25,6 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.require_paths = %w[lib]
|
26
26
|
|
27
27
|
spec.metadata = {
|
28
|
-
'funding_uri' => 'https://karafka.io/#become-pro',
|
29
28
|
'homepage_uri' => 'https://karafka.io',
|
30
29
|
'changelog_uri' => 'https://karafka.io/docs/Changelog-Karafka-Core',
|
31
30
|
'bug_tracker_uri' => 'https://github.com/karafka/karafka-core/issues',
|
@@ -22,6 +22,8 @@ module Karafka
|
|
22
22
|
@children = []
|
23
23
|
@nestings = nestings
|
24
24
|
@compiled = false
|
25
|
+
@configs_refs = {}
|
26
|
+
@local_defs = Set.new
|
25
27
|
instance_eval(&nestings)
|
26
28
|
end
|
27
29
|
|
@@ -58,7 +60,14 @@ module Karafka
|
|
58
60
|
|
59
61
|
@children.each do |value|
|
60
62
|
config[value.node_name] = if value.is_a?(Leaf)
|
61
|
-
result =
|
63
|
+
result = if @configs_refs.key?(value.node_name)
|
64
|
+
@configs_refs[value.node_name]
|
65
|
+
elsif value.constructor
|
66
|
+
value.constructor.call
|
67
|
+
elsif value.default
|
68
|
+
value.default
|
69
|
+
end
|
70
|
+
|
62
71
|
# We need to check if value is not a result node for cases
|
63
72
|
# where we merge additional config
|
64
73
|
result.is_a?(Node) ? result.to_h : result
|
@@ -96,12 +105,12 @@ module Karafka
|
|
96
105
|
@children.each do |value|
|
97
106
|
# Do not redefine something that was already set during compilation
|
98
107
|
# This will allow us to reconfigure things and skip override with defaults
|
99
|
-
skippable =
|
108
|
+
skippable = @configs_refs.key?(value.node_name) || (value.is_a?(Leaf) && value.compiled?)
|
100
109
|
lazy_leaf = value.is_a?(Leaf) && value.lazy?
|
101
110
|
|
102
111
|
# Do not create accessor for leafs that are lazy as they will get a custom method
|
103
112
|
# created instead
|
104
|
-
|
113
|
+
build_accessors(value) unless lazy_leaf
|
105
114
|
|
106
115
|
next if skippable
|
107
116
|
|
@@ -123,7 +132,7 @@ module Karafka
|
|
123
132
|
if lazy_leaf && !initialized
|
124
133
|
build_dynamic_accessor(value)
|
125
134
|
else
|
126
|
-
|
135
|
+
@configs_refs[value.node_name] = initialized
|
127
136
|
end
|
128
137
|
end
|
129
138
|
|
@@ -139,16 +148,18 @@ module Karafka
|
|
139
148
|
#
|
140
149
|
# @param value [Leaf]
|
141
150
|
def build_dynamic_accessor(value)
|
142
|
-
singleton_class.attr_writer(value.node_name)
|
143
|
-
|
144
151
|
define_singleton_method(value.node_name) do
|
145
|
-
existing =
|
152
|
+
existing = @configs_refs.fetch(value.node_name, false)
|
146
153
|
|
147
|
-
return existing
|
154
|
+
return existing unless existing == false
|
148
155
|
|
149
156
|
built = call_constructor(value)
|
150
157
|
|
151
|
-
|
158
|
+
@configs_refs[value.node_name] = built
|
159
|
+
end
|
160
|
+
|
161
|
+
define_singleton_method(:"#{value.node_name}=") do |new_value|
|
162
|
+
@configs_refs[value.node_name] = new_value
|
152
163
|
end
|
153
164
|
end
|
154
165
|
|
@@ -165,6 +176,32 @@ module Karafka
|
|
165
176
|
constructor.call(value.default)
|
166
177
|
end
|
167
178
|
end
|
179
|
+
|
180
|
+
# Builds regular accessors for value fetching
|
181
|
+
#
|
182
|
+
# @param value [Leaf]
|
183
|
+
def build_accessors(value)
|
184
|
+
reader_name = value.node_name.to_sym
|
185
|
+
reader_respond = respond_to?(reader_name)
|
186
|
+
# There is a weird edge-case from 2020, where nodes would not redefine methods that
|
187
|
+
# would be defined on Object. Some of users were defining things like `#logger` on
|
188
|
+
# object and then we would not redefine it for nodes. This ensures that we only do not
|
189
|
+
# redefine our own definitions but we do redefine any user "accidentally" inherited
|
190
|
+
# methods
|
191
|
+
if reader_respond ? !@local_defs.include?(reader_name) : true
|
192
|
+
@local_defs << reader_name
|
193
|
+
|
194
|
+
define_singleton_method(reader_name) do
|
195
|
+
@configs_refs[reader_name]
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
return if respond_to?(:"#{value.node_name}=")
|
200
|
+
|
201
|
+
define_singleton_method(:"#{value.node_name}=") do |new_value|
|
202
|
+
@configs_refs[value.node_name] = new_value
|
203
|
+
end
|
204
|
+
end
|
168
205
|
end
|
169
206
|
end
|
170
207
|
end
|
@@ -63,23 +63,9 @@ module Karafka
|
|
63
63
|
config.configure(&block)
|
64
64
|
end
|
65
65
|
|
66
|
-
#
|
67
|
-
|
68
|
-
|
69
|
-
# Pipes the settings setup to the config root node
|
70
|
-
def setting(...)
|
71
|
-
config.setting(...)
|
72
|
-
end
|
73
|
-
CODE
|
74
|
-
else
|
75
|
-
class_eval <<~CODE, __FILE__, __LINE__ + 1
|
76
|
-
# Pipes the settings setup to the config root node
|
77
|
-
# @param args [Object] anything provided to settings
|
78
|
-
# @param block [Proc] block for settings
|
79
|
-
def setting(*args, &block)
|
80
|
-
config.setting(*args, &block)
|
81
|
-
end
|
82
|
-
CODE
|
66
|
+
# Pipes the settings setup to the config root node
|
67
|
+
def setting(...)
|
68
|
+
config.setting(...)
|
83
69
|
end
|
84
70
|
end
|
85
71
|
end
|
data/lib/karafka/core/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: karafka-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.5.
|
4
|
+
version: 2.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maciej Mensfeld
|
@@ -59,6 +59,7 @@ files:
|
|
59
59
|
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
60
60
|
- ".github/workflows/ci.yml"
|
61
61
|
- ".github/workflows/push.yml"
|
62
|
+
- ".github/workflows/trigger-wiki-refresh.yml"
|
62
63
|
- ".github/workflows/verify-action-pins.yml"
|
63
64
|
- ".gitignore"
|
64
65
|
- ".rspec"
|
@@ -101,7 +102,6 @@ homepage: https://karafka.io
|
|
101
102
|
licenses:
|
102
103
|
- MIT
|
103
104
|
metadata:
|
104
|
-
funding_uri: https://karafka.io/#become-pro
|
105
105
|
homepage_uri: https://karafka.io
|
106
106
|
changelog_uri: https://karafka.io/docs/Changelog-Karafka-Core
|
107
107
|
bug_tracker_uri: https://github.com/karafka/karafka-core/issues
|
@@ -122,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
122
|
- !ruby/object:Gem::Version
|
123
123
|
version: '0'
|
124
124
|
requirements: []
|
125
|
-
rubygems_version: 3.6.
|
125
|
+
rubygems_version: 3.6.9
|
126
126
|
specification_version: 4
|
127
127
|
summary: Karafka ecosystem core modules
|
128
128
|
test_files: []
|