kettle-family 1.2.32 → 1.2.33
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 +14 -1
- data/README.md +1 -1
- data/lib/kettle/family/cli.rb +1 -1
- data/lib/kettle/family/command_runner.rb +1 -1
- data/lib/kettle/family/version.rb +1 -1
- data/lib/kettle/family/workflow.rb +69 -2
- data.tar.gz.sig +0 -0
- metadata +4 -4
- metadata.gz.sig +1 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7bc62f30841deba8052e11b124ade3ea3cb3e2ab8dd79f7767cd9f07b373b823
|
|
4
|
+
data.tar.gz: e24a1978e08a4ffa80a927787e3fd054402526fd858edffcfcdf4cd5ba20f875
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a4a84d0a66b107aa69bb2c675ad2cd4e77ccddc84a5d1f8285a14699031d1b31235e79808f4944d8dc48f6bc4a4417bc1777a2aa484fd5d9c4060eb582d7d5bc
|
|
7
|
+
data.tar.gz: 00d5aa3f4ab242c133b114a4e2b0b9fe998f85d60ec187a15b80c09cd9dfb02ae036eddef03f20373a52d9b5e281323d6a6c960e18bf8080cd70cd26739020ed
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,17 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [1.2.33] - 2026-08-05
|
|
34
|
+
|
|
35
|
+
- TAG: [v1.2.33][1.2.33t]
|
|
36
|
+
- COVERAGE: 93.70% -- 4997/5333 lines in 32 files
|
|
37
|
+
- BRANCH COVERAGE: 76.04% -- 1990/2617 branches in 32 files
|
|
38
|
+
- 29.61% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Stream GitHub Actions pinning progress per member through the family event tape.
|
|
43
|
+
|
|
33
44
|
## [1.2.32] - 2026-08-05
|
|
34
45
|
|
|
35
46
|
- TAG: [v1.2.32][1.2.32t]
|
|
@@ -1811,7 +1822,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
1811
1822
|
- Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
|
|
1812
1823
|
- Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
|
|
1813
1824
|
|
|
1814
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.
|
|
1825
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.33...HEAD
|
|
1826
|
+
[1.2.33]: https://github.com/kettle-dev/kettle-family/compare/v1.2.32...v1.2.33
|
|
1827
|
+
[1.2.33t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.33
|
|
1815
1828
|
[1.2.32]: https://github.com/kettle-dev/kettle-family/compare/v1.2.31...v1.2.32
|
|
1816
1829
|
[1.2.32t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.32
|
|
1817
1830
|
[1.2.31]: https://github.com/kettle-dev/kettle-family/compare/v1.2.30...v1.2.31
|
data/README.md
CHANGED
|
@@ -837,7 +837,7 @@ Thanks for RTFM. ☺️
|
|
|
837
837
|
[📌gitmoji]: https://gitmoji.dev
|
|
838
838
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
839
839
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
840
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-5.
|
|
840
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-5.333-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
841
841
|
[🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
|
|
842
842
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
843
843
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
data/lib/kettle/family/cli.rb
CHANGED
|
@@ -802,7 +802,7 @@ module Kettle
|
|
|
802
802
|
end
|
|
803
803
|
|
|
804
804
|
def progress_io(command, options)
|
|
805
|
-
return nil unless %w[release template].include?(command)
|
|
805
|
+
return nil unless %w[release template gha-sha-pins].include?(command)
|
|
806
806
|
return nil unless options[:execute]
|
|
807
807
|
return nil if options[:json]
|
|
808
808
|
|
|
@@ -273,7 +273,7 @@ module Kettle
|
|
|
273
273
|
elapsed_seconds: elapsed.round(3),
|
|
274
274
|
skipped: false,
|
|
275
275
|
reason: status.success? ? nil : "command failed",
|
|
276
|
-
output_streamed: interactive,
|
|
276
|
+
output_streamed: interactive || !!stdout_line_handler,
|
|
277
277
|
log_path: log_path
|
|
278
278
|
)
|
|
279
279
|
end
|
|
@@ -5,7 +5,7 @@ module Kettle
|
|
|
5
5
|
# Version namespace for this gem.
|
|
6
6
|
module Version
|
|
7
7
|
# Current gem version.
|
|
8
|
-
VERSION = "1.2.
|
|
8
|
+
VERSION = "1.2.33"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
|
@@ -435,7 +435,8 @@ module Kettle
|
|
|
435
435
|
return template_member_workflow_results(workflow_members) if command == "template" && execute
|
|
436
436
|
|
|
437
437
|
runner = CommandRunner.new(execute: execute, accept: accept)
|
|
438
|
-
|
|
438
|
+
gha_progress = (command == "gha-sha-pins") ? start_gha_sha_pins_progress(workflow_members) : nil
|
|
439
|
+
results = workflow_members.each_with_object([]) do |member, memo|
|
|
439
440
|
if command == "template" && config.normalize_lockfiles?
|
|
440
441
|
normalize_lockfiles(member: member, runner: runner, memo: memo, phase: "prepare_lockfiles")
|
|
441
442
|
break memo unless memo.last.ok?
|
|
@@ -447,8 +448,16 @@ module Kettle
|
|
|
447
448
|
end
|
|
448
449
|
|
|
449
450
|
command_text = workflow_command(member)
|
|
450
|
-
|
|
451
|
+
gha_progress&.start_member(member, total: 1, status: "starting")
|
|
452
|
+
result = runner.call(
|
|
453
|
+
member: member,
|
|
454
|
+
phase: command,
|
|
455
|
+
command: command_text,
|
|
456
|
+
env: command_env,
|
|
457
|
+
stdout_line_handler: (command == "gha-sha-pins") ? gha_sha_pins_event_line_handler(member) : nil
|
|
458
|
+
)
|
|
451
459
|
memo << result
|
|
460
|
+
gha_progress&.finish_member(member, success: result.ok?, status: result.ok? ? "complete" : "failed")
|
|
452
461
|
break memo unless result.ok?
|
|
453
462
|
|
|
454
463
|
normalize_lockfiles(member: member, runner: runner, memo: memo, phase: "normalize_lockfiles") if command == "template"
|
|
@@ -461,6 +470,8 @@ module Kettle
|
|
|
461
470
|
end
|
|
462
471
|
commit_bex_changes(member: member, runner: runner, memo: memo) if command == "bex"
|
|
463
472
|
end
|
|
473
|
+
gha_progress&.finish
|
|
474
|
+
results
|
|
464
475
|
end
|
|
465
476
|
|
|
466
477
|
def template_member_workflow_results(workflow_members)
|
|
@@ -2140,6 +2151,7 @@ module Kettle
|
|
|
2140
2151
|
args = []
|
|
2141
2152
|
args << (gha_sha_pins_check ? "--check" : "--write") unless command_includes_any?(command_text, %w[--check --write])
|
|
2142
2153
|
args.concat(["--upgrade", gha_sha_pins_upgrade]) unless command_includes_arg?(command_text, "--upgrade")
|
|
2154
|
+
args << "--events" unless command_includes_arg?(command_text, "--events")
|
|
2143
2155
|
append_command_args(command_text, args)
|
|
2144
2156
|
end
|
|
2145
2157
|
|
|
@@ -2375,6 +2387,18 @@ module Kettle
|
|
|
2375
2387
|
progress
|
|
2376
2388
|
end
|
|
2377
2389
|
|
|
2390
|
+
def start_gha_sha_pins_progress(workflow_members)
|
|
2391
|
+
@gha_sha_pins_progress = WorkflowProgress.new(
|
|
2392
|
+
io: progress_io,
|
|
2393
|
+
label: "pinning GitHub Actions",
|
|
2394
|
+
total: workflow_members.length,
|
|
2395
|
+
jobs: jobs || 1,
|
|
2396
|
+
members: workflow_members
|
|
2397
|
+
)
|
|
2398
|
+
@gha_sha_pins_progress.start
|
|
2399
|
+
@gha_sha_pins_progress
|
|
2400
|
+
end
|
|
2401
|
+
|
|
2378
2402
|
def start_release_preflight_progress(phases)
|
|
2379
2403
|
return nil unless progress_io
|
|
2380
2404
|
|
|
@@ -2516,6 +2540,49 @@ module Kettle
|
|
|
2516
2540
|
end
|
|
2517
2541
|
end
|
|
2518
2542
|
|
|
2543
|
+
def gha_sha_pins_event_line_handler(member)
|
|
2544
|
+
return nil unless progress_io
|
|
2545
|
+
|
|
2546
|
+
lambda do |line|
|
|
2547
|
+
event = parse_template_event(line)
|
|
2548
|
+
next false unless event && event["type"].to_s.start_with?("gha_sha_pins")
|
|
2549
|
+
|
|
2550
|
+
if progress_io
|
|
2551
|
+
if verbose || debug
|
|
2552
|
+
emit_gha_sha_pins_event_progress(member, event)
|
|
2553
|
+
elsif @gha_sha_pins_progress
|
|
2554
|
+
emit_gha_sha_pins_event_status(member, event, progress: @gha_sha_pins_progress)
|
|
2555
|
+
end
|
|
2556
|
+
end
|
|
2557
|
+
true
|
|
2558
|
+
end
|
|
2559
|
+
end
|
|
2560
|
+
|
|
2561
|
+
def emit_gha_sha_pins_event_progress(member, event)
|
|
2562
|
+
action = event["action"].to_s
|
|
2563
|
+
mark = (event["status"].to_s == "failed") ? "F" : "."
|
|
2564
|
+
label = [action, event["path"], event["action_ref"]].map(&:to_s).reject(&:empty?).join(":")
|
|
2565
|
+
emit_template_event_line(member, mark, label)
|
|
2566
|
+
end
|
|
2567
|
+
|
|
2568
|
+
def emit_gha_sha_pins_event_status(member, event, progress:)
|
|
2569
|
+
action = event["action"].to_s
|
|
2570
|
+
status = case event["type"].to_s
|
|
2571
|
+
when "gha_sha_pins_start"
|
|
2572
|
+
"discovering workflows"
|
|
2573
|
+
when "gha_sha_pins_action"
|
|
2574
|
+
completed = event["completed"].to_i
|
|
2575
|
+
total = event["total"].to_i
|
|
2576
|
+
"actions: #{completed}/#{total} #{(event["cache"] == "hit") ? "cached" : "live"}"
|
|
2577
|
+
when "gha_sha_pins_summary"
|
|
2578
|
+
"#{event["changed_files"].to_i} files, #{event["updates"].to_i} updates"
|
|
2579
|
+
else
|
|
2580
|
+
action.empty? ? "processing" : action
|
|
2581
|
+
end
|
|
2582
|
+
mark = (event["status"].to_s == "failed") ? "F" : nil
|
|
2583
|
+
progress.update(member, status: status, mark: mark)
|
|
2584
|
+
end
|
|
2585
|
+
|
|
2519
2586
|
def suppress_release_secret_provider_event?(event, progress:)
|
|
2520
2587
|
return false unless event["type"] == "secret_provider"
|
|
2521
2588
|
return false unless progress
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kettle-family
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.2.
|
|
4
|
+
version: 1.2.33
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -360,10 +360,10 @@ licenses:
|
|
|
360
360
|
- AGPL-3.0-only
|
|
361
361
|
metadata:
|
|
362
362
|
homepage_uri: https://kettle-family.galtzo.com
|
|
363
|
-
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.
|
|
364
|
-
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.
|
|
363
|
+
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.33
|
|
364
|
+
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.33/CHANGELOG.md
|
|
365
365
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
|
|
366
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.
|
|
366
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.33
|
|
367
367
|
funding_uri: https://github.com/sponsors/pboling
|
|
368
368
|
wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
|
|
369
369
|
news_uri: https://www.railsbling.com/tags/kettle-family
|
metadata.gz.sig
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
>��"�9�
|
|
1
|
+
0��-+��@O���Zt<>������������������Q���>Ha�&?�H\@�{�}U�Ķ�ZП���y{��Rk�[���������=r�n��k�k���3d�x��*�z��5g�0������G���:>4�����K*�2H6^��S�Opf��ь�C��
|