kettle-family 1.2.76 → 1.2.78
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 +27 -1
- data/README.md +1 -1
- data/lib/kettle/family/version.rb +1 -1
- data/lib/kettle/family/workflow.rb +48 -13
- 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: d9b7d6740376ab7d2fc779c542ac2b0cdc0a699365f81524661e2ba85981bf7f
|
|
4
|
+
data.tar.gz: b517ddd2b6e67723bdb90f253e9911ef9c8d2b46cb671e2c5c4488b6d4d525f2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 29cc312861e8dd9bb644c5174d9c28dbcca03631eab91c6196999d1cf63fb4c898db3afd7a83911e95ec284e289a4028fa2796fe9c182124daadf1df35443214
|
|
7
|
+
data.tar.gz: 9be50641d873026f744571befc0addf3491a3b230ea3f9ccf09a5b863a4226a53b121e1b7d09d33f55e5cec39e8f235beed37905f669ad19a46f846851b17dea
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,28 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [1.2.78] - 2026-09-01
|
|
34
|
+
|
|
35
|
+
- TAG: [v1.2.78][1.2.78t]
|
|
36
|
+
- COVERAGE: 93.34% -- 5575/5973 lines in 33 files
|
|
37
|
+
- BRANCH COVERAGE: 76.66% -- 2292/2990 branches in 33 files
|
|
38
|
+
- 30.69% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Retry dependency floor lockfile refreshes only while a newly released family gem is unavailable from the registry.
|
|
43
|
+
|
|
44
|
+
## [1.2.77] - 2026-08-31
|
|
45
|
+
|
|
46
|
+
- TAG: [v1.2.77][1.2.77t]
|
|
47
|
+
- COVERAGE: 93.33% -- 5568/5966 lines in 33 files
|
|
48
|
+
- BRANCH COVERAGE: 76.69% -- 2290/2986 branches in 33 files
|
|
49
|
+
- 30.69% documented
|
|
50
|
+
|
|
51
|
+
### Added
|
|
52
|
+
|
|
53
|
+
- Stream aggregate monorepo GitHub Release asset events through family release progress.
|
|
54
|
+
|
|
33
55
|
## [1.2.76] - 2026-08-31
|
|
34
56
|
|
|
35
57
|
- TAG: [v1.2.76][1.2.76t]
|
|
@@ -2416,7 +2438,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
2416
2438
|
- Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
|
|
2417
2439
|
- Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
|
|
2418
2440
|
|
|
2419
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.
|
|
2441
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.78...HEAD
|
|
2442
|
+
[1.2.78]: https://github.com/kettle-dev/kettle-family/compare/v1.2.77...v1.2.78
|
|
2443
|
+
[1.2.78t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.78
|
|
2444
|
+
[1.2.77]: https://github.com/kettle-dev/kettle-family/compare/v1.2.76...v1.2.77
|
|
2445
|
+
[1.2.77t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.77
|
|
2420
2446
|
[1.2.76]: https://github.com/kettle-dev/kettle-family/compare/v1.2.75...v1.2.76
|
|
2421
2447
|
[1.2.76t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.76
|
|
2422
2448
|
[1.2.75]: https://github.com/kettle-dev/kettle-family/compare/v1.2.74...v1.2.75
|
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.973-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
|
|
@@ -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.78"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
|
@@ -1723,6 +1723,7 @@ module Kettle
|
|
|
1723
1723
|
validate_dependency_floor_lockfile_result(result: result, member: member, released_members: released_members) if result.ok?
|
|
1724
1724
|
annotate_dependency_floor_lockfile_result(result, attempts)
|
|
1725
1725
|
break if result.ok?
|
|
1726
|
+
break unless dependency_floor_registry_retryable?(result: result, released_members: released_members)
|
|
1726
1727
|
|
|
1727
1728
|
sleep(REGISTRY_WAIT_INTERVAL_SECONDS) if index + 1 < REGISTRY_WAIT_ATTEMPTS
|
|
1728
1729
|
end
|
|
@@ -2034,6 +2035,20 @@ module Kettle
|
|
|
2034
2035
|
end
|
|
2035
2036
|
end
|
|
2036
2037
|
|
|
2038
|
+
# Registry propagation is the only condition that merits waiting here.
|
|
2039
|
+
# Solver conflicts and missing local paths are deterministic until the
|
|
2040
|
+
# project configuration changes, so retrying them only hides the error.
|
|
2041
|
+
def dependency_floor_registry_retryable?(result:, released_members:)
|
|
2042
|
+
return false if released_members.empty?
|
|
2043
|
+
|
|
2044
|
+
output = [result.stdout, result.stderr].compact.join("\n")
|
|
2045
|
+
released_members.any? do |member|
|
|
2046
|
+
name = Regexp.escape(member.name)
|
|
2047
|
+
output.match?(/Could not find gem ["']#{name}(?:[ "']|$)/) ||
|
|
2048
|
+
output.match?(/CHECKSUMS .*#{name}/)
|
|
2049
|
+
end
|
|
2050
|
+
end
|
|
2051
|
+
|
|
2037
2052
|
def commit_dependency_floor_changes(dependent_members:, runner:, memo:)
|
|
2038
2053
|
by_name = members.to_h { |member| [member.name, member] }
|
|
2039
2054
|
dependent_members.each do |member_name|
|
|
@@ -2616,7 +2631,7 @@ module Kettle
|
|
|
2616
2631
|
checksum_path = File.join(member.root, "checksums", "#{member.name}-#{version.first}.gem.sha256")
|
|
2617
2632
|
gem_path + (File.file?(checksum_path) ? [checksum_path] : [])
|
|
2618
2633
|
end
|
|
2619
|
-
command = ["bundle", "exec", "kettle-gh-release", "--allow-unpublished", "--release-version", version.first]
|
|
2634
|
+
command = ["bundle", "exec", "kettle-gh-release", "--allow-unpublished", "--events", "--release-version", version.first]
|
|
2620
2635
|
assets.each { |asset| command.concat(["--asset", asset]) }
|
|
2621
2636
|
return aggregate_release_dry_run_result(command) unless execute
|
|
2622
2637
|
|
|
@@ -2632,20 +2647,15 @@ module Kettle
|
|
|
2632
2647
|
# implementation needed by this aggregate step.
|
|
2633
2648
|
local_kettle_dev = ENV.fetch("KETTLE_DEV_DEV", "").to_s.strip
|
|
2634
2649
|
env["KETTLE_DEV_DEV"] = local_kettle_dev if local_path_env_value?(local_kettle_dev)
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
member_name: config.family_name,
|
|
2650
|
+
aggregate_member = family_member
|
|
2651
|
+
result = command_runner.call(
|
|
2652
|
+
member: aggregate_member,
|
|
2639
2653
|
phase: "aggregate_github_release",
|
|
2640
2654
|
command: command,
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
stderr: stderr,
|
|
2646
|
-
elapsed_seconds: Process.clock_gettime(Process::CLOCK_MONOTONIC) - started,
|
|
2647
|
-
skipped: false,
|
|
2648
|
-
reason: status.success? ? nil : "aggregate GitHub release failed"
|
|
2655
|
+
env: env,
|
|
2656
|
+
stdout_line_handler: aggregate_github_release_event_line_handler(aggregate_member),
|
|
2657
|
+
log_path: release_command_log_path(aggregate_member, "aggregate_github_release"),
|
|
2658
|
+
passthrough_output: release_command_passthrough_output?
|
|
2649
2659
|
)
|
|
2650
2660
|
result.resume_command = aggregate_github_release_resume_command(env, command) unless result.ok?
|
|
2651
2661
|
result
|
|
@@ -2667,6 +2677,16 @@ module Kettle
|
|
|
2667
2677
|
end
|
|
2668
2678
|
(["env", *assignments].join(" ") + " " + Shellwords.join(command)).strip
|
|
2669
2679
|
end
|
|
2680
|
+
|
|
2681
|
+
def aggregate_github_release_event_line_handler(member)
|
|
2682
|
+
lambda do |line|
|
|
2683
|
+
event = parse_template_event(line)
|
|
2684
|
+
next false unless event && event["type"] == "github_release"
|
|
2685
|
+
|
|
2686
|
+
emit_template_event_line(member, github_release_event_mark(event), github_release_event_label(event)) if progress_io
|
|
2687
|
+
true
|
|
2688
|
+
end
|
|
2689
|
+
end
|
|
2670
2690
|
# simplecov:enable
|
|
2671
2691
|
|
|
2672
2692
|
def aggregate_release_result(reason)
|
|
@@ -3741,6 +3761,21 @@ module Kettle
|
|
|
3741
3761
|
parts.reject(&:empty?).join(":")
|
|
3742
3762
|
end
|
|
3743
3763
|
|
|
3764
|
+
def github_release_event_label(event)
|
|
3765
|
+
parts = ["github_release", event["action"].to_s]
|
|
3766
|
+
asset = event["asset"].to_s
|
|
3767
|
+
parts << asset unless asset.empty?
|
|
3768
|
+
parts << "#{event["attempt"]}/#{event["attempts"]}" if event["attempt"] && event["attempts"]
|
|
3769
|
+
parts.reject(&:empty?).join(":")
|
|
3770
|
+
end
|
|
3771
|
+
|
|
3772
|
+
def github_release_event_mark(event)
|
|
3773
|
+
return "F" if event["status"].to_s == "failed"
|
|
3774
|
+
return "." if event["status"].to_s == "ok"
|
|
3775
|
+
|
|
3776
|
+
">"
|
|
3777
|
+
end
|
|
3778
|
+
|
|
3744
3779
|
def diagnostic_event_label(event)
|
|
3745
3780
|
message = event["message"]
|
|
3746
3781
|
return message.to_s unless message.to_s.empty? || message.is_a?(Hash)
|
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.78
|
|
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.27
|
|
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.27
|
|
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.78
|
|
445
|
+
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.78/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.78
|
|
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
|