kettle-dev 2.5.19 → 2.5.20
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +16 -1
- data/README.md +1 -1
- data/lib/kettle/dev/ci_helpers.rb +15 -5
- data/lib/kettle/dev/rakelib/appraisal.rake +2 -0
- data/lib/kettle/dev/rakelib/bundle_audit.rake +2 -0
- data/lib/kettle/dev/rakelib/reek.rake +2 -0
- data/lib/kettle/dev/rakelib/require_bench.rake +2 -0
- data/lib/kettle/dev/rakelib/rubocop_gradual.rake +2 -0
- data/lib/kettle/dev/rakelib/spec_test.rake +2 -0
- data/lib/kettle/dev/rakelib/yard.rake +8 -0
- data/lib/kettle/dev/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +4 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7f642698f24dc241a8f3286ff20b151dcdb30333c436290681740ffe24fb6148
|
|
4
|
+
data.tar.gz: 578361645c3b639cca69d6c120a7990b38afcbb55bc6c5c55df95e4ba998e292
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bfd379df162aa902b96ba7f5fefc28170aee8f1995230d24268baccd8603dfa4a596cf4f29acf2a0230c8d1e755ec8a91ddc193cd4139a18e9bfc69143bd59e7
|
|
7
|
+
data.tar.gz: 62bd06604b31ea2d042e87ebb67ab9815d251c29e4606ea61cdcd5aad983868229e932dfad3bce5ea304e5a54523816723d1da3ce8a618f6e7eca88714f0aea0
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,19 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [2.5.20] - 2026-08-07
|
|
34
|
+
|
|
35
|
+
- TAG: [v2.5.20][2.5.20t]
|
|
36
|
+
- COVERAGE: 91.75% -- 5440/5929 lines in 47 files
|
|
37
|
+
- BRANCH COVERAGE: 76.14% -- 2049/2691 branches in 47 files
|
|
38
|
+
- 50.77% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Prefer non-cancelled exact-commit GitHub Actions runs when workflow concurrency creates duplicate runs.
|
|
43
|
+
|
|
44
|
+
- Skip YARD lint when a project has no .yard-lint.yml policy.
|
|
45
|
+
|
|
33
46
|
## [2.5.19] - 2026-08-06
|
|
34
47
|
|
|
35
48
|
- TAG: [v2.5.19][2.5.19t]
|
|
@@ -3259,7 +3272,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
3259
3272
|
- Selecting will run the selected workflow via `act`
|
|
3260
3273
|
- This may move to its own gem in the future.
|
|
3261
3274
|
|
|
3262
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.
|
|
3275
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.20...HEAD
|
|
3276
|
+
[2.5.20]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.19...v2.5.20
|
|
3277
|
+
[2.5.20t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.5.20
|
|
3263
3278
|
[2.5.19]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.18...v2.5.19
|
|
3264
3279
|
[2.5.19t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.5.19
|
|
3265
3280
|
[2.5.18]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.17...v2.5.18
|
data/README.md
CHANGED
|
@@ -1007,7 +1007,7 @@ Thanks for RTFM. ☺️
|
|
|
1007
1007
|
[📌gitmoji]: https://gitmoji.dev
|
|
1008
1008
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
1009
1009
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
1010
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-5.
|
|
1010
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-5.929-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
1011
1011
|
[🔐security]: https://github.com/kettle-dev/kettle-dev/blob/main/SECURITY.md
|
|
1012
1012
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
1013
1013
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -104,9 +104,10 @@ module Kettle
|
|
|
104
104
|
return unless data
|
|
105
105
|
|
|
106
106
|
runs = Array(data["workflow_runs"]) || []
|
|
107
|
-
# Try to match by head_sha first;
|
|
107
|
+
# Try to match by head_sha first; GitHub may return a cancelled duplicate
|
|
108
|
+
# before the replacement run created by workflow concurrency.
|
|
108
109
|
run = if sha
|
|
109
|
-
match = runs.
|
|
110
|
+
match = preferred_head_run(runs.select { |r| r["head_sha"] == sha })
|
|
110
111
|
match ||= latest_repository_workflow_run(owner: owner, repo: repo, workflow_file: workflow_file, branch: b, head_sha: sha, token: token)
|
|
111
112
|
require_head ? match : (match || runs.first)
|
|
112
113
|
else
|
|
@@ -134,9 +135,18 @@ module Kettle
|
|
|
134
135
|
return unless data
|
|
135
136
|
|
|
136
137
|
workflow_path = ".github/workflows/#{workflow_file}"
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
preferred_head_run(
|
|
139
|
+
Array(data["workflow_runs"]).select do |run|
|
|
140
|
+
run["head_sha"] == head_sha && run["path"] == workflow_path
|
|
141
|
+
end
|
|
142
|
+
)
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
# Concurrency cancellation can leave an older run for the exact same
|
|
146
|
+
# commit ahead of its replacement in GitHub's API response. Prefer the
|
|
147
|
+
# replacement so a cancelled duplicate cannot mask a valid run.
|
|
148
|
+
def preferred_head_run(runs)
|
|
149
|
+
runs.find { |run| run["conclusion"] != "cancelled" } || runs.first
|
|
140
150
|
end
|
|
141
151
|
|
|
142
152
|
def github_get_json(url, token:)
|
|
@@ -27,10 +27,12 @@ else
|
|
|
27
27
|
Kettle::Dev.register_default("bundle:audit:update")
|
|
28
28
|
Kettle::Dev.register_default("bundle:audit")
|
|
29
29
|
rescue LoadError
|
|
30
|
+
# simplecov:disable -- bundler-audit is an optional development dependency.
|
|
30
31
|
warn("[kettle-dev][bundle_audit.rake] failed to load bundle/audit/task") if Kettle::Dev::DEBUGGING
|
|
31
32
|
define_bundle_audit_stub_tasks.call(
|
|
32
33
|
"(stub)",
|
|
33
34
|
->(_task_name) { "NOTE: bundler-audit isn't installed, or is disabled for #{RUBY_VERSION} in the current environment" }
|
|
34
35
|
)
|
|
36
|
+
# simplecov:enable
|
|
35
37
|
end
|
|
36
38
|
end
|
|
@@ -31,9 +31,11 @@ begin
|
|
|
31
31
|
end
|
|
32
32
|
Kettle::Dev.register_default("reek:update") unless Kettle::Dev::IS_CI
|
|
33
33
|
rescue LoadError
|
|
34
|
+
# simplecov:disable -- Reek is an optional development dependency.
|
|
34
35
|
warn("[kettle-dev][reek.rake] failed to load reek/rake/task") if Kettle::Dev::DEBUGGING
|
|
35
36
|
desc("(stub) reek is unavailable")
|
|
36
37
|
task(:reek) do
|
|
37
38
|
warn("NOTE: reek isn't installed, or is disabled for #{RUBY_VERSION} in the current environment")
|
|
38
39
|
end
|
|
40
|
+
# simplecov:enable
|
|
39
41
|
end
|
|
@@ -3,5 +3,7 @@
|
|
|
3
3
|
begin
|
|
4
4
|
require "require_bench/tasks" if Kettle::Dev::REQUIRE_BENCH
|
|
5
5
|
rescue LoadError
|
|
6
|
+
# simplecov:disable -- require_bench is an opt-in development dependency.
|
|
6
7
|
warn("[kettle-dev][require_bench.rake] failed to load require_bench/tasks") if Kettle::Dev::DEBUGGING
|
|
8
|
+
# simplecov:enable
|
|
7
9
|
end
|
|
@@ -7,5 +7,7 @@ begin
|
|
|
7
7
|
t.options = ["--debug"]
|
|
8
8
|
end
|
|
9
9
|
rescue LoadError
|
|
10
|
+
# simplecov:disable -- RuboCop Gradual is an optional development dependency.
|
|
10
11
|
warn("[kettle-dev][rubocop_gradual.rake] failed to load rubocop/gradual/rake_task") if Kettle::Dev::DEBUGGING
|
|
12
|
+
# simplecov:enable
|
|
11
13
|
end
|
|
@@ -24,6 +24,7 @@ begin
|
|
|
24
24
|
Kettle::Dev.register_default("test") unless Kettle::Dev.default_registered?("coverage")
|
|
25
25
|
end
|
|
26
26
|
rescue LoadError
|
|
27
|
+
# simplecov:disable -- Rake's optional test task integration varies by runtime.
|
|
27
28
|
warn("[kettle-dev][spec_test.rake] failed to load rake/testtask") if Kettle::Dev::DEBUGGING
|
|
28
29
|
unless Rake::Task.task_defined?(:test)
|
|
29
30
|
desc("test task stub")
|
|
@@ -31,6 +32,7 @@ rescue LoadError
|
|
|
31
32
|
warn("NOTE: minitest isn't installed, or is disabled for #{RUBY_VERSION} in the current environment")
|
|
32
33
|
end
|
|
33
34
|
end
|
|
35
|
+
# simplecov:enable
|
|
34
36
|
end
|
|
35
37
|
|
|
36
38
|
setup_spec_task = ->(default:) {
|
|
@@ -14,20 +14,26 @@ begin
|
|
|
14
14
|
begin
|
|
15
15
|
require "yard/fence"
|
|
16
16
|
Yard::Fence.install_rake_tasks!(:yard)
|
|
17
|
+
# simplecov:disable -- optional plugin availability is environment-specific.
|
|
17
18
|
rescue LoadError
|
|
18
19
|
# yard-fence not available - that's fine
|
|
20
|
+
# simplecov:enable
|
|
19
21
|
end
|
|
20
22
|
|
|
21
23
|
begin
|
|
22
24
|
require "yard/timekeeper"
|
|
23
25
|
Yard::Timekeeper.install_rake_tasks!(:yard)
|
|
26
|
+
# simplecov:disable -- optional plugin availability is environment-specific.
|
|
24
27
|
rescue LoadError
|
|
25
28
|
# yard-timekeeper not available - that's fine
|
|
29
|
+
# simplecov:enable
|
|
26
30
|
end
|
|
27
31
|
|
|
28
32
|
namespace :yard do
|
|
29
33
|
desc "Lint YARD Documentation"
|
|
30
34
|
task :lint do
|
|
35
|
+
next unless File.file?(".yard-lint.yml")
|
|
36
|
+
|
|
31
37
|
# Keep warning-only lint runs compact in default/release flows, but rerun
|
|
32
38
|
# with full output when lint fails so the blocking diagnostics are visible.
|
|
33
39
|
sh("bundle", "exec", "yard-lint", "lib") unless system("bundle", "exec", "yard-lint", "--quiet", "lib")
|
|
@@ -39,10 +45,12 @@ begin
|
|
|
39
45
|
Kettle::Dev.register_default("yard:lint")
|
|
40
46
|
Kettle::Dev.register_default("yard")
|
|
41
47
|
rescue LoadError
|
|
48
|
+
# simplecov:disable -- YARD is an optional development dependency.
|
|
42
49
|
warn("[kettle-dev][yard.rake] failed to load yard") if Kettle::Dev::DEBUGGING
|
|
43
50
|
desc("(stub) yard is unavailable")
|
|
44
51
|
task(:yard) do # rubocop:disable Rake/DuplicateTask -- fallback when the real YARD task cannot load
|
|
45
52
|
warn("NOTE: yard isn't installed, or is disabled for #{RUBY_VERSION} in the current environment")
|
|
46
53
|
end
|
|
47
54
|
Kettle::Dev.register_default("yard")
|
|
55
|
+
# simplecov:enable
|
|
48
56
|
end
|
data/lib/kettle/dev/version.rb
CHANGED
|
@@ -5,7 +5,7 @@ module Kettle
|
|
|
5
5
|
# Version namespace for this gem.
|
|
6
6
|
module Version
|
|
7
7
|
# Current gem version.
|
|
8
|
-
VERSION = "2.5.
|
|
8
|
+
VERSION = "2.5.20"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kettle-dev
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.5.
|
|
4
|
+
version: 2.5.20
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -402,10 +402,10 @@ licenses:
|
|
|
402
402
|
- AGPL-3.0-only
|
|
403
403
|
metadata:
|
|
404
404
|
homepage_uri: https://kettle-dev.galtzo.com
|
|
405
|
-
source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.5.
|
|
406
|
-
changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.5.
|
|
405
|
+
source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.5.20
|
|
406
|
+
changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.5.20/CHANGELOG.md
|
|
407
407
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-dev/issues
|
|
408
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.5.
|
|
408
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.5.20
|
|
409
409
|
funding_uri: https://github.com/sponsors/pboling
|
|
410
410
|
wiki_uri: https://github.com/kettle-dev/kettle-dev/wiki
|
|
411
411
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
|
Binary file
|