kettle-family 1.2.92 → 1.2.93
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 +14 -7
- data/lib/kettle/family/report.rb +1 -0
- data/lib/kettle/family/version.rb +1 -1
- data/lib/kettle/family/workflow.rb +54 -2
- 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: a1a24d4a7f560730b58dea502aa74c1f7c2b6b5821c92bc565ee5d0eff79d8be
|
|
4
|
+
data.tar.gz: 58f47810263c6279e727419acb896abb959ccac76bff444c83b19c88c85f64f5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7bb4085cb68b1d1ee1592ad1ab43d55afbc08a4c12a341ffffb6f1b3d712f43e51e0b8b4f59095fdd8402e1fa7c21822d6b43da8c8bd4caf340e102418d2974c
|
|
7
|
+
data.tar.gz: c12db5ebfea5489500b221fbc39f8d638fc6f4ad119eb73a210e195b779804325be2effad8970a78b65f7a5f0b837a9d324bb12242ab33c61b782877de5d6343
|
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.93] - 2026-09-07
|
|
34
|
+
|
|
35
|
+
- TAG: [v1.2.93][1.2.93t]
|
|
36
|
+
- COVERAGE: 93.54% -- 6165/6591 lines in 35 files
|
|
37
|
+
- BRANCH COVERAGE: 78.08% -- 2507/3211 branches in 35 files
|
|
38
|
+
- 32.41% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Update family-root bundles before member bundles for bup and bupb, committing the root lockfile only when the family is a monorepo.
|
|
43
|
+
|
|
33
44
|
## [1.2.92] - 2026-09-07
|
|
34
45
|
|
|
35
46
|
- TAG: [v1.2.92][1.2.92t]
|
|
@@ -2616,7 +2627,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
2616
2627
|
- Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
|
|
2617
2628
|
- Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
|
|
2618
2629
|
|
|
2619
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.
|
|
2630
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.93...HEAD
|
|
2631
|
+
[1.2.93]: https://github.com/kettle-dev/kettle-family/compare/v1.2.92...v1.2.93
|
|
2632
|
+
[1.2.93t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.93
|
|
2620
2633
|
[1.2.92]: https://github.com/kettle-dev/kettle-family/compare/v1.2.91...v1.2.92
|
|
2621
2634
|
[1.2.92t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.92
|
|
2622
2635
|
[1.2.91]: https://github.com/kettle-dev/kettle-family/compare/v1.2.90...v1.2.91
|
data/README.md
CHANGED
|
@@ -496,8 +496,8 @@ The command names below are available from `kettle-family --help`:
|
|
|
496
496
|
| `docs` | Run the configured documentation workflow for each selected member. |
|
|
497
497
|
| `template` | Apply the configured `kettle-jem` template for each selected member. |
|
|
498
498
|
| `gha-sha-pins` | Inspect or update GitHub Actions SHA pins. |
|
|
499
|
-
| `bup` | Run `bundle update --all`, or update a named dependency, per member. |
|
|
500
|
-
| `bupb` | Run `bundle update --bundler` per member. |
|
|
499
|
+
| `bup` | Run `bundle update --all`, or update a named dependency, at the family root and per member. |
|
|
500
|
+
| `bupb` | Run `bundle update --bundler` at the family root and per member. |
|
|
501
501
|
| `bex` | Run an arbitrary `bundle exec` command per member. |
|
|
502
502
|
| `install` | Build and install selected local family gems. |
|
|
503
503
|
| `bump` | Check, plan, or execute family version alignment. |
|
|
@@ -596,10 +596,17 @@ kettle-family bup --execute
|
|
|
596
596
|
kettle-family template --execute
|
|
597
597
|
```
|
|
598
598
|
|
|
599
|
-
`bup` runs `bundle update --all`
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
599
|
+
`bup` first runs `bundle update --all` at the family root when that root has a
|
|
600
|
+
`Gemfile`, then runs it for every selected member. `bupb` follows the same
|
|
601
|
+
root-first order with `bundle update --bundler`. A root that is itself a member
|
|
602
|
+
is updated only once. A gem name may be passed to `bup` to update only that
|
|
603
|
+
dependency, for example `kettle-family bup --execute kettle-test`.
|
|
604
|
+
|
|
605
|
+
Executed member updates commit successful lockfile changes by default. The
|
|
606
|
+
family-root lockfile is also validated and committed for monorepos, where the
|
|
607
|
+
root and members share one Git repository. A sibling-repository family root is
|
|
608
|
+
updated for its orchestration bundle but is not included in any member commit.
|
|
609
|
+
Use `--no-commit` for a working-tree-only refresh, or `--commit` to state the
|
|
603
610
|
default explicitly. Local dependency environment variables are preserved when
|
|
604
611
|
explicitly supplied, so use the family's local or released dependency mode
|
|
605
612
|
deliberately before running it.
|
|
@@ -1137,7 +1144,7 @@ Thanks for RTFM. ☺️
|
|
|
1137
1144
|
[📌gitmoji]: https://gitmoji.dev
|
|
1138
1145
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
1139
1146
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
1140
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-6.
|
|
1147
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-6.591-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
1141
1148
|
[🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
|
|
1142
1149
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
1143
1150
|
[📄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/report.rb
CHANGED
|
@@ -702,6 +702,7 @@ module Kettle
|
|
|
702
702
|
|
|
703
703
|
def resume_hint_for(result)
|
|
704
704
|
return release_resume_hint(result) if command == "release"
|
|
705
|
+
return "kettle-family #{command}" if result.phase.start_with?("family_root_") || result.phase == "commit_family_root_bundle_update"
|
|
705
706
|
|
|
706
707
|
"kettle-family #{command} --start-at #{result.member_name}"
|
|
707
708
|
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.93"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
|
@@ -575,6 +575,9 @@ module Kettle
|
|
|
575
575
|
|
|
576
576
|
runner = CommandRunner.new(execute: execute, accept: accept)
|
|
577
577
|
results = []
|
|
578
|
+
update_family_root_bundle(runner: runner, memo: results) if %w[bup bupb].include?(command)
|
|
579
|
+
return results unless results.all?(&:ok?)
|
|
580
|
+
|
|
578
581
|
if command == "gha-sha-pins" && execute
|
|
579
582
|
return results unless review_gha_sha_pins(workflow_members, runner: runner, memo: results)
|
|
580
583
|
end
|
|
@@ -617,6 +620,39 @@ module Kettle
|
|
|
617
620
|
results
|
|
618
621
|
end
|
|
619
622
|
|
|
623
|
+
def update_family_root_bundle(runner:, memo:)
|
|
624
|
+
return unless family_root_bundle_update_required?
|
|
625
|
+
|
|
626
|
+
root_member = family_member
|
|
627
|
+
memo << runner.call(
|
|
628
|
+
member: root_member,
|
|
629
|
+
phase: "family_root_#{command}",
|
|
630
|
+
command: workflow_command,
|
|
631
|
+
env: command_env
|
|
632
|
+
)
|
|
633
|
+
return unless memo.last.ok?
|
|
634
|
+
return unless family_root_bundle_commit?
|
|
635
|
+
return unless validate_bundle_update_lockfile(
|
|
636
|
+
member: root_member,
|
|
637
|
+
memo: memo,
|
|
638
|
+
phase: "family_root_bundle_update_readiness"
|
|
639
|
+
)
|
|
640
|
+
|
|
641
|
+
commit_family_root_bundle_update(member: root_member, runner: runner, memo: memo)
|
|
642
|
+
end
|
|
643
|
+
|
|
644
|
+
def family_root_bundle_update_required?
|
|
645
|
+
return false unless File.file?(File.join(config.root, "Gemfile"))
|
|
646
|
+
|
|
647
|
+
family_members.none? do |member|
|
|
648
|
+
File.expand_path(member.root) == File.expand_path(config.root)
|
|
649
|
+
end
|
|
650
|
+
end
|
|
651
|
+
|
|
652
|
+
def family_root_bundle_commit?
|
|
653
|
+
commit && config.family_mode == "monorepo"
|
|
654
|
+
end
|
|
655
|
+
|
|
620
656
|
# Sibling repositories have isolated working trees and can run their
|
|
621
657
|
# tests concurrently. A monorepo's default kettle-test command normally
|
|
622
658
|
# executes the shared root suite, so it is represented by one selected
|
|
@@ -5529,13 +5565,13 @@ module Kettle
|
|
|
5529
5565
|
memo << result
|
|
5530
5566
|
end
|
|
5531
5567
|
|
|
5532
|
-
def validate_bundle_update_lockfile(member:, memo:)
|
|
5568
|
+
def validate_bundle_update_lockfile(member:, memo:, phase: "bundle_update_readiness")
|
|
5533
5569
|
return true unless execute && commit
|
|
5534
5570
|
|
|
5535
5571
|
diagnostics = bundle_update_lockfile_diagnostics(member)
|
|
5536
5572
|
result = CommandResult.new(
|
|
5537
5573
|
member.name,
|
|
5538
|
-
|
|
5574
|
+
phase,
|
|
5539
5575
|
["internal", "bundle-update-readiness"],
|
|
5540
5576
|
member.root,
|
|
5541
5577
|
diagnostics.empty? ? 0 : 1,
|
|
@@ -5550,6 +5586,22 @@ module Kettle
|
|
|
5550
5586
|
result.ok?
|
|
5551
5587
|
end
|
|
5552
5588
|
|
|
5589
|
+
def commit_family_root_bundle_update(member:, runner:, memo:)
|
|
5590
|
+
return unless family_root_bundle_commit?
|
|
5591
|
+
|
|
5592
|
+
result = runner.call(
|
|
5593
|
+
member: member,
|
|
5594
|
+
phase: "commit_family_root_bundle_update",
|
|
5595
|
+
command: [
|
|
5596
|
+
"sh",
|
|
5597
|
+
"-lc",
|
|
5598
|
+
"files=$(git ls-files --modified --others --exclude-standard -- Gemfile.lock); " \
|
|
5599
|
+
"if [ -n \"$files\" ]; then git add -- Gemfile.lock && git commit --only -m '🔒️ Update family root bundle' -- Gemfile.lock; fi"
|
|
5600
|
+
]
|
|
5601
|
+
)
|
|
5602
|
+
memo << result
|
|
5603
|
+
end
|
|
5604
|
+
|
|
5553
5605
|
def bundle_update_lockfile_diagnostics(member)
|
|
5554
5606
|
ReadinessCheck.call(
|
|
5555
5607
|
member: 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.2.
|
|
4
|
+
version: 1.2.93
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -443,10 +443,10 @@ licenses:
|
|
|
443
443
|
- AGPL-3.0-only
|
|
444
444
|
metadata:
|
|
445
445
|
homepage_uri: https://kettle-family.galtzo.com
|
|
446
|
-
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.
|
|
447
|
-
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.
|
|
446
|
+
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.93
|
|
447
|
+
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.93/CHANGELOG.md
|
|
448
448
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
|
|
449
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.
|
|
449
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.93
|
|
450
450
|
funding_uri: https://github.com/sponsors/pboling
|
|
451
451
|
wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
|
|
452
452
|
news_uri: https://www.railsbling.com/tags/kettle-family
|
metadata.gz.sig
CHANGED
|
Binary file
|