kettle-family 1.1.3 → 1.1.4
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 +17 -1
- data/README.md +1 -1
- data/lib/kettle/family/version.rb +1 -1
- data/lib/kettle/family/workflow.rb +8 -55
- 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: eafb1c2637486f15a03b2dc3b00c2218033969abfd1bb8f3cebf6365656d9a1b
|
|
4
|
+
data.tar.gz: fdf90e5eefa73eb2ab307cbae5e50eab961979de00df2bdc64e3da834a90d84b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4bbbc81d57861465081de1ae16a75a22f68ad13e981aefdd7c4e1a936841af24592da9d12256d6b37d9ebb30d8d625ba1fba3c2ba885e1a8ad04696d18563c47
|
|
7
|
+
data.tar.gz: 9fcac93653c0b932552e55f62e646f7d308f3b5a195c42c90d704304472a9e8373e7e5ed13560180c5f0496c04e27e8e8f9464f72f213987f19e4e045db5797c
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,20 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [1.1.4] - 2026-07-24
|
|
34
|
+
|
|
35
|
+
- TAG: [v1.1.4][1.1.4t]
|
|
36
|
+
- COVERAGE: 94.56% -- 2972/3143 lines in 25 files
|
|
37
|
+
- BRANCH COVERAGE: 76.69% -- 1076/1403 branches in 25 files
|
|
38
|
+
- 28.68% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Dependency floor propagation after a sibling release now retries
|
|
43
|
+
`bundle update <released-gem>` before committing floor changes, so dependents
|
|
44
|
+
wait for Bundler to install the just-published gem and write valid lockfile
|
|
45
|
+
checksums.
|
|
46
|
+
|
|
33
47
|
## [1.1.3] - 2026-07-23
|
|
34
48
|
|
|
35
49
|
- TAG: [v1.1.3][1.1.3t]
|
|
@@ -951,7 +965,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
951
965
|
- Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
|
|
952
966
|
- Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
|
|
953
967
|
|
|
954
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.1.
|
|
968
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.1.4...HEAD
|
|
969
|
+
[1.1.4]: https://github.com/kettle-dev/kettle-family/compare/v1.1.3...v1.1.4
|
|
970
|
+
[1.1.4t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.1.4
|
|
955
971
|
[1.1.3]: https://github.com/kettle-dev/kettle-family/compare/v1.1.2...v1.1.3
|
|
956
972
|
[1.1.3t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.1.3
|
|
957
973
|
[1.1.2]: https://github.com/kettle-dev/kettle-family/compare/v1.1.1...v1.1.2
|
data/README.md
CHANGED
|
@@ -669,7 +669,7 @@ Thanks for RTFM. ☺️
|
|
|
669
669
|
[📌gitmoji]: https://gitmoji.dev
|
|
670
670
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
671
671
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
672
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.
|
|
672
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-3.143-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
673
673
|
[🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
|
|
674
674
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
675
675
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -585,15 +585,13 @@ module Kettle
|
|
|
585
585
|
mode: execute ? :execute : :dry_run
|
|
586
586
|
).results
|
|
587
587
|
memo.concat(floor_results)
|
|
588
|
+
return if floor_results.empty?
|
|
588
589
|
return if floor_results.any? && !floor_results.all?(&:ok?)
|
|
589
590
|
|
|
590
|
-
|
|
591
|
-
return if memo.any? && !memo.last.ok?
|
|
592
|
-
|
|
593
|
-
append_registry_wait_result(released_members: released_members, dependent_members: affected_dependent_members, memo: memo)
|
|
591
|
+
append_dependency_floor_lockfile_results(released_members: released_members, dependent_members: affected_dependent_members, runner: runner, memo: memo)
|
|
594
592
|
return if memo.any? && !memo.last.ok?
|
|
595
593
|
|
|
596
|
-
|
|
594
|
+
commit_dependency_floor_changes(dependent_members: floor_results.map(&:member_name), runner: runner, memo: memo) if floor_results.any? && execute && commit
|
|
597
595
|
end
|
|
598
596
|
|
|
599
597
|
def dependent_members_depending_on(released_members:, dependent_members:)
|
|
@@ -607,13 +605,6 @@ module Kettle
|
|
|
607
605
|
Array(member.release_dependencies || member.dependencies).map(&:to_s)
|
|
608
606
|
end
|
|
609
607
|
|
|
610
|
-
def append_registry_wait_result(released_members:, dependent_members:, memo:)
|
|
611
|
-
return unless execute && publish
|
|
612
|
-
return if dependent_members.empty?
|
|
613
|
-
|
|
614
|
-
memo << wait_for_registry_result(released_members: released_members, dependent_members: dependent_members)
|
|
615
|
-
end
|
|
616
|
-
|
|
617
608
|
def append_dependency_floor_lockfile_results(released_members:, dependent_members:, runner:, memo:)
|
|
618
609
|
return unless execute && publish
|
|
619
610
|
return if dependent_members.empty?
|
|
@@ -627,6 +618,7 @@ module Kettle
|
|
|
627
618
|
def wait_for_dependency_floor_lockfiles_result(member:, released_members:, runner:)
|
|
628
619
|
result = nil
|
|
629
620
|
REGISTRY_WAIT_ATTEMPTS.times do |index|
|
|
621
|
+
emit_dependency_floor_lockfile_progress(member: member, attempt: index + 1)
|
|
630
622
|
result = runner.call(
|
|
631
623
|
member: member,
|
|
632
624
|
phase: "dependency_floor_lockfiles",
|
|
@@ -703,7 +695,8 @@ module Kettle
|
|
|
703
695
|
command: [
|
|
704
696
|
"sh",
|
|
705
697
|
"-lc",
|
|
706
|
-
"
|
|
698
|
+
"files=$(git ls-files --modified --others --exclude-standard -- '*.gemspec' Gemfile.lock); " \
|
|
699
|
+
"if [ -n \"$files\" ]; then git add -- $files && git commit -m '⬆️ Raise family dependency floors'; fi"
|
|
707
700
|
]
|
|
708
701
|
)
|
|
709
702
|
break unless memo.last.ok?
|
|
@@ -873,48 +866,8 @@ module Kettle
|
|
|
873
866
|
raise Error, "could not parse published versions for #{gem_name}: #{error.message}"
|
|
874
867
|
end
|
|
875
868
|
|
|
876
|
-
def
|
|
877
|
-
|
|
878
|
-
missing = []
|
|
879
|
-
attempts = 0
|
|
880
|
-
REGISTRY_WAIT_ATTEMPTS.times do |index|
|
|
881
|
-
attempts = index + 1
|
|
882
|
-
missing = released_members.reject { |member| released_version?(member.name, member.version) }
|
|
883
|
-
break if missing.empty?
|
|
884
|
-
|
|
885
|
-
sleep(REGISTRY_WAIT_INTERVAL_SECONDS) if attempts < REGISTRY_WAIT_ATTEMPTS
|
|
886
|
-
end
|
|
887
|
-
elapsed = Process.clock_gettime(Process::CLOCK_MONOTONIC) - started_at
|
|
888
|
-
dependency_names = dependent_members.map(&:name).join(", ")
|
|
889
|
-
if missing.empty?
|
|
890
|
-
CommandResult.new(
|
|
891
|
-
member_name: dependency_names,
|
|
892
|
-
phase: "release_wait_for_registry",
|
|
893
|
-
command: ["internal", "wait-for-registry", released_members.map { |member| "#{member.name}-#{member.version}" }.join(",")],
|
|
894
|
-
workdir: config.root,
|
|
895
|
-
status: 0,
|
|
896
|
-
success: true,
|
|
897
|
-
stdout: "registry contains #{released_members.map { |member| "#{member.name} #{member.version}" }.join(", ")} after #{attempts} check(s)",
|
|
898
|
-
stderr: "",
|
|
899
|
-
elapsed_seconds: elapsed,
|
|
900
|
-
skipped: false,
|
|
901
|
-
reason: "dependent members: #{dependency_names}"
|
|
902
|
-
)
|
|
903
|
-
else
|
|
904
|
-
CommandResult.new(
|
|
905
|
-
member_name: dependency_names,
|
|
906
|
-
phase: "release_wait_for_registry",
|
|
907
|
-
command: ["internal", "wait-for-registry", released_members.map { |member| "#{member.name}-#{member.version}" }.join(",")],
|
|
908
|
-
workdir: config.root,
|
|
909
|
-
status: 1,
|
|
910
|
-
success: false,
|
|
911
|
-
stdout: "timed out waiting for #{missing.map { |member| "#{member.name} #{member.version}" }.join(", ")} after #{attempts} check(s)",
|
|
912
|
-
stderr: "",
|
|
913
|
-
elapsed_seconds: elapsed,
|
|
914
|
-
skipped: false,
|
|
915
|
-
reason: "dependent members: #{dependency_names}"
|
|
916
|
-
)
|
|
917
|
-
end
|
|
869
|
+
def emit_dependency_floor_lockfile_progress(member:, attempt:)
|
|
870
|
+
@release_progress&.update(member, status: "lockfiles #{attempt}/#{REGISTRY_WAIT_ATTEMPTS}", mark: ">")
|
|
918
871
|
end
|
|
919
872
|
|
|
920
873
|
def already_released_result(member)
|
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.1.
|
|
4
|
+
version: 1.1.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -319,10 +319,10 @@ licenses:
|
|
|
319
319
|
- AGPL-3.0-only
|
|
320
320
|
metadata:
|
|
321
321
|
homepage_uri: https://kettle-family.galtzo.com
|
|
322
|
-
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.1.
|
|
323
|
-
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.1.
|
|
322
|
+
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.1.4
|
|
323
|
+
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.1.4/CHANGELOG.md
|
|
324
324
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
|
|
325
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.1.
|
|
325
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.1.4
|
|
326
326
|
funding_uri: https://github.com/sponsors/pboling
|
|
327
327
|
wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
|
|
328
328
|
news_uri: https://www.railsbling.com/tags/kettle-family
|
metadata.gz.sig
CHANGED
|
Binary file
|