kettle-family 1.2.75 → 1.2.76
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/family/command_result.rb +4 -2
- data/lib/kettle/family/report.rb +6 -2
- data/lib/kettle/family/version.rb +1 -1
- data/lib/kettle/family/workflow.rb +19 -3
- data.tar.gz.sig +0 -0
- metadata +6 -6
- 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: ea5e2e449c39979639ba25d8ef16b2319801caae9cad7484aa06ea42b02b6ba5
|
|
4
|
+
data.tar.gz: 356a1d85acb9691fc5cf224ac02ebc184bf9ad2a27cbdff10041234ab09a5ad6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: aca651e1786dd95149f72b06ea89f1cf105a517f24d9d7ced1cff15027d2ab3865e76c6584f661f2cb82eb68d2f7f19322a68031ff173d859f51eed593fd280e
|
|
7
|
+
data.tar.gz: 0ec5a86efdbcdb299dab0326b0079f156d8d2ef27164e11da8fbf60852d0a05f68336875f1ac3135916aff2f0871b787c9b0552fc2a331018c17b9b4e501c624
|
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
|
+
## [1.2.76] - 2026-08-31
|
|
34
|
+
|
|
35
|
+
- TAG: [v1.2.76][1.2.76t]
|
|
36
|
+
- COVERAGE: 93.32% -- 5558/5956 lines in 33 files
|
|
37
|
+
- BRANCH COVERAGE: 76.76% -- 2286/2978 branches in 33 files
|
|
38
|
+
- 30.69% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Avoid invalid member-scoped resume hints for synthetic aggregate GitHub Release failures.
|
|
43
|
+
|
|
44
|
+
- Include all shared-family artifacts when recovering an interrupted aggregate GitHub Release.
|
|
45
|
+
|
|
33
46
|
## [1.2.75] - 2026-08-31
|
|
34
47
|
|
|
35
48
|
- TAG: [v1.2.75][1.2.75t]
|
|
@@ -2403,7 +2416,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
2403
2416
|
- Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
|
|
2404
2417
|
- Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
|
|
2405
2418
|
|
|
2406
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.
|
|
2419
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.76...HEAD
|
|
2420
|
+
[1.2.76]: https://github.com/kettle-dev/kettle-family/compare/v1.2.75...v1.2.76
|
|
2421
|
+
[1.2.76t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.76
|
|
2407
2422
|
[1.2.75]: https://github.com/kettle-dev/kettle-family/compare/v1.2.74...v1.2.75
|
|
2408
2423
|
[1.2.75t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.75
|
|
2409
2424
|
[1.2.74]: https://github.com/kettle-dev/kettle-family/compare/v1.2.73...v1.2.74
|
data/README.md
CHANGED
|
@@ -1049,7 +1049,7 @@ Thanks for RTFM. ☺️
|
|
|
1049
1049
|
[📌gitmoji]: https://gitmoji.dev
|
|
1050
1050
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
1051
1051
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
1052
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-5.
|
|
1052
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-5.956-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
1053
1053
|
[🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
|
|
1054
1054
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
1055
1055
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -17,7 +17,8 @@ module Kettle
|
|
|
17
17
|
:branch,
|
|
18
18
|
:output_streamed,
|
|
19
19
|
:log_path,
|
|
20
|
-
:resume_step
|
|
20
|
+
:resume_step,
|
|
21
|
+
:resume_command
|
|
21
22
|
) do
|
|
22
23
|
def to_h
|
|
23
24
|
{
|
|
@@ -35,7 +36,8 @@ module Kettle
|
|
|
35
36
|
"reason" => reason,
|
|
36
37
|
"output_streamed" => output_streamed?,
|
|
37
38
|
"log_path" => log_path,
|
|
38
|
-
"resume_step" => resume_step
|
|
39
|
+
"resume_step" => resume_step,
|
|
40
|
+
"resume_command" => resume_command
|
|
39
41
|
}
|
|
40
42
|
end
|
|
41
43
|
|
data/lib/kettle/family/report.rb
CHANGED
|
@@ -122,7 +122,8 @@ module Kettle
|
|
|
122
122
|
lines << " #{result_state(result)} #{result.member_name} #{result.phase} #{result.reason || ""}".rstrip
|
|
123
123
|
append_result_stdout(lines, result)
|
|
124
124
|
append_indented_output(lines, result.stderr) if !result.ok? && !result.stderr.to_s.empty?
|
|
125
|
-
|
|
125
|
+
resume_hint = resume_hint_for(result)
|
|
126
|
+
lines << " resume: #{resume_hint}" if !result.ok? && resume_hint
|
|
126
127
|
end
|
|
127
128
|
append_template_summary(lines) if command == "template"
|
|
128
129
|
end
|
|
@@ -687,7 +688,7 @@ module Kettle
|
|
|
687
688
|
end
|
|
688
689
|
|
|
689
690
|
def release_resume_hints
|
|
690
|
-
failed_hints = visible_results.reject(&:ok?).
|
|
691
|
+
failed_hints = visible_results.reject(&:ok?).filter_map { |result| resume_hint_for(result) }.uniq
|
|
691
692
|
pending_names = summary_pending.map { |entry| entry.fetch("member") }
|
|
692
693
|
return failed_hints if pending_names.empty?
|
|
693
694
|
|
|
@@ -701,6 +702,9 @@ module Kettle
|
|
|
701
702
|
end
|
|
702
703
|
|
|
703
704
|
def release_resume_hint(result)
|
|
705
|
+
return result.resume_command if result.respond_to?(:resume_command) && !result.resume_command.to_s.empty?
|
|
706
|
+
return nil if result.phase == "aggregate_github_release"
|
|
707
|
+
|
|
704
708
|
hint = release_resume_base
|
|
705
709
|
hint = "#{hint} --only #{result.member_name}" if result.member_name
|
|
706
710
|
hint = "#{hint} --start-step #{result.resume_step}" if result.respond_to?(:resume_step) && result.resume_step
|
|
@@ -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.76"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
|
@@ -520,8 +520,8 @@ module Kettle
|
|
|
520
520
|
results.concat(release_member_results(workflow_members, include_family_changelog: !skip_changelog))
|
|
521
521
|
return results unless explicit_monorepo_mode? && results.all?(&:ok?)
|
|
522
522
|
|
|
523
|
-
|
|
524
|
-
results << aggregate_monorepo_github_release(
|
|
523
|
+
selected_aggregate_members = aggregate_release_members(workflow_members)
|
|
524
|
+
results << aggregate_monorepo_github_release(aggregate_github_release_members) unless selected_aggregate_members.empty?
|
|
525
525
|
return results
|
|
526
526
|
end
|
|
527
527
|
return git_sync_results(workflow_members) if GIT_SYNC_COMMANDS.key?(command)
|
|
@@ -2396,6 +2396,13 @@ module Kettle
|
|
|
2396
2396
|
member && aggregate_release_members.include?(member)
|
|
2397
2397
|
end
|
|
2398
2398
|
|
|
2399
|
+
# A resumed release may select only the members that remain unpublished.
|
|
2400
|
+
# The repository-level release still needs every shared-version artifact,
|
|
2401
|
+
# including members published by an earlier interrupted wave.
|
|
2402
|
+
def aggregate_github_release_members
|
|
2403
|
+
aggregate_release_members(family_members)
|
|
2404
|
+
end
|
|
2405
|
+
|
|
2399
2406
|
def fast_recovery_for?(member)
|
|
2400
2407
|
return false unless fast_recovery
|
|
2401
2408
|
return false unless member
|
|
@@ -2627,7 +2634,7 @@ module Kettle
|
|
|
2627
2634
|
env["KETTLE_DEV_DEV"] = local_kettle_dev if local_path_env_value?(local_kettle_dev)
|
|
2628
2635
|
started = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
|
2629
2636
|
stdout, stderr, status = Open3.capture3(env, *command, chdir: config.root)
|
|
2630
|
-
CommandResult.new(
|
|
2637
|
+
result = CommandResult.new(
|
|
2631
2638
|
member_name: config.family_name,
|
|
2632
2639
|
phase: "aggregate_github_release",
|
|
2633
2640
|
command: command,
|
|
@@ -2640,6 +2647,8 @@ module Kettle
|
|
|
2640
2647
|
skipped: false,
|
|
2641
2648
|
reason: status.success? ? nil : "aggregate GitHub release failed"
|
|
2642
2649
|
)
|
|
2650
|
+
result.resume_command = aggregate_github_release_resume_command(env, command) unless result.ok?
|
|
2651
|
+
result
|
|
2643
2652
|
rescue => error
|
|
2644
2653
|
aggregate_release_result("#{error.class}: #{error.message}")
|
|
2645
2654
|
end
|
|
@@ -2651,6 +2660,13 @@ module Kettle
|
|
|
2651
2660
|
def aggregate_monorepo_github_release?
|
|
2652
2661
|
explicit_monorepo_mode? && family_members.length > 1
|
|
2653
2662
|
end
|
|
2663
|
+
|
|
2664
|
+
def aggregate_github_release_resume_command(env, command)
|
|
2665
|
+
assignments = env.sort_by { |key, _value| key }.filter_map do |key, value|
|
|
2666
|
+
"#{key}=#{Shellwords.escape(value.to_s)}" unless value.nil?
|
|
2667
|
+
end
|
|
2668
|
+
(["env", *assignments].join(" ") + " " + Shellwords.join(command)).strip
|
|
2669
|
+
end
|
|
2654
2670
|
# simplecov:enable
|
|
2655
2671
|
|
|
2656
2672
|
def aggregate_release_result(reason)
|
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.76
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -91,7 +91,7 @@ dependencies:
|
|
|
91
91
|
requirements:
|
|
92
92
|
- - ">="
|
|
93
93
|
- !ruby/object:Gem::Version
|
|
94
|
-
version: 3.0.
|
|
94
|
+
version: 3.0.26
|
|
95
95
|
- - "<"
|
|
96
96
|
- !ruby/object:Gem::Version
|
|
97
97
|
version: 4.0.0
|
|
@@ -101,7 +101,7 @@ dependencies:
|
|
|
101
101
|
requirements:
|
|
102
102
|
- - ">="
|
|
103
103
|
- !ruby/object:Gem::Version
|
|
104
|
-
version: 3.0.
|
|
104
|
+
version: 3.0.26
|
|
105
105
|
- - "<"
|
|
106
106
|
- !ruby/object:Gem::Version
|
|
107
107
|
version: 4.0.0
|
|
@@ -441,10 +441,10 @@ licenses:
|
|
|
441
441
|
- AGPL-3.0-only
|
|
442
442
|
metadata:
|
|
443
443
|
homepage_uri: https://kettle-family.galtzo.com
|
|
444
|
-
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.
|
|
445
|
-
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.
|
|
444
|
+
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.76
|
|
445
|
+
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.76/CHANGELOG.md
|
|
446
446
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
|
|
447
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.
|
|
447
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.76
|
|
448
448
|
funding_uri: https://github.com/sponsors/pboling
|
|
449
449
|
wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
|
|
450
450
|
news_uri: https://www.railsbling.com/tags/kettle-family
|
metadata.gz.sig
CHANGED
|
Binary file
|