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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d646d672443bd894e34e08d6efc291ccd082b997aa8eaf826655aa8f0590979
4
- data.tar.gz: e386e0b401cc627191a242a0e4ab4068a471fe0e54390dad510e19edc006391f
3
+ metadata.gz: 7bc62f30841deba8052e11b124ade3ea3cb3e2ab8dd79f7767cd9f07b373b823
4
+ data.tar.gz: e24a1978e08a4ffa80a927787e3fd054402526fd858edffcfcdf4cd5ba20f875
5
5
  SHA512:
6
- metadata.gz: 131a9a38babe3806974778b7888b67b09d1f7a6aa8bb144c6caf50bfb81c5ba9c7e97979a75999a8e67757afedf281369ff3739034d76b4858ffa8f81aed2146
7
- data.tar.gz: b286801884a658abe7f8d21833da213832c15d27768e379885754350f8550c6e093601efd4985cd25ee03590f78ea116390a5acc4e2d3c3295a9eb2d786b7e2d
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.32...HEAD
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.295-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
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
@@ -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.32"
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
- workflow_members.each_with_object([]) do |member, memo|
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
- result = runner.call(member: member, phase: command, command: command_text, env: command_env)
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.32
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.32
364
- changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.32/CHANGELOG.md
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.32
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
- B��:����ay��r��ӗo���^��� �ӵ7sJ`|��
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��