kettle-family 0.1.29 → 0.1.30

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: 8f2d2daae978ae39fac490631b4c3e50177da30f9d386eb1bc51aa6e97e00cee
4
- data.tar.gz: 2f054f861e0f108fae73f251bf1b95402f9500d9aafeea012bc2b0eff116fd26
3
+ metadata.gz: 9144232b2ea02b46e2236e733d28396876e1622b9aa047bdb23f76193ddc2621
4
+ data.tar.gz: 33b143ff44b740087c377842beecd3bc079a9f56ee2b5c222930aef3df9d5d93
5
5
  SHA512:
6
- metadata.gz: 7aeb45976878075ff4ab19b00e01bf664d105307e9494d36bcff52ef0967b989b6526689dcfbeed7492b7bbad2f639f4ef3a78fe5948937c241362e5849c57f8
7
- data.tar.gz: 7f90c138396b126b1d12768a1a04cd737b8b1699584de3d79148dbee01f4cbed02bab85f503aa3772f193deff792e2be6e5029450c9827f4e2c6dc57b3bbb41b
6
+ metadata.gz: c96d76e736760fcca99becfbd72bf22ad93fe8cb06a9ca20c9c47cce121a73b37be888fa40e94059beac517d61c1b8e2e33bec788d34fe725d5afe12c5caf9f2
7
+ data.tar.gz: 04be7bb04babc0b8b0a1fb61b0695f97b98989ddb678e8bab1639959c0c71c9d9d5684b247ffa0c1097f350b38e2fda6ecddbb683b1b06ef9ab2829c12577490
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
+ ## [0.1.30] - 2026-06-29
34
+
35
+ - TAG: [v0.1.30][0.1.30t]
36
+ - COVERAGE: 95.32% -- 1934/2029 lines in 21 files
37
+ - BRANCH COVERAGE: 75.31% -- 674/895 branches in 21 files
38
+ - 37.71% documented
39
+
40
+ ### Added
41
+
42
+ - Family root configs can now set `release.member_target_branches` to override
43
+ branch-stack targets for specific members while leaving other member-local
44
+ branch configs inherited.
45
+
33
46
  ## [0.1.29] - 2026-06-28
34
47
 
35
48
  - TAG: [v0.1.29][0.1.29t]
@@ -514,7 +527,9 @@ Please file a bug if you notice a violation of semantic versioning.
514
527
  - Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
515
528
  - Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
516
529
 
517
- [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v0.1.29...HEAD
530
+ [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v0.1.30...HEAD
531
+ [0.1.30]: https://github.com/kettle-dev/kettle-family/compare/v0.1.29...v0.1.30
532
+ [0.1.30t]: https://github.com/kettle-dev/kettle-family/releases/tag/v0.1.30
518
533
  [0.1.29]: https://github.com/kettle-dev/kettle-family/compare/v0.1.28...v0.1.29
519
534
  [0.1.29t]: https://github.com/kettle-dev/kettle-family/releases/tag/v0.1.29
520
535
  [0.1.28]: https://github.com/kettle-dev/kettle-family/compare/v0.1.27...v0.1.28
data/README.md CHANGED
@@ -158,6 +158,27 @@ members:
158
158
  - "**/vendor/**"
159
159
  ```
160
160
 
161
+ Member branch-stack releases can be configured in the member repository itself:
162
+
163
+ ```yaml
164
+ release:
165
+ target_branches:
166
+ - r1_8-even-v0
167
+ - r1_9-even-v2
168
+ ```
169
+
170
+ Family root configs can override a member's branch targets explicitly by member
171
+ name. Members not listed here still inherit their member-local branch target
172
+ config when present.
173
+
174
+ ```yaml
175
+ release:
176
+ member_target_branches:
177
+ rubocop-lts:
178
+ - r1_8-even-v0
179
+ - r1_9-even-v2
180
+ ```
181
+
161
182
  Monorepo families whose member gems share release metadata from the repository
162
183
  root can configure readiness and changelog ownership explicitly:
163
184
 
@@ -571,7 +592,7 @@ Thanks for RTFM. ☺️
571
592
  [📌gitmoji]: https://gitmoji.dev
572
593
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
573
594
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
574
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-2.017-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
595
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-2.029-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
575
596
  [🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
576
597
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
577
598
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -16,6 +16,23 @@ module Kettle
16
16
  branches.reject { |branch| branch == "main" }
17
17
  end
18
18
 
19
+ def member_release_config(member:, config:)
20
+ member_configured_release_config(member: member, config: config) ||
21
+ member_local_release_config(member: member, config: config)
22
+ end
23
+
24
+ def member_configured_release_config(member:, config:)
25
+ return unless config&.respond_to?(:member_release_target_branches)
26
+
27
+ branches = config.member_release_target_branches.fetch(member.name, nil)
28
+ return if branches.nil? || branches.empty?
29
+
30
+ data = config.data.merge(
31
+ "release" => config.data.fetch("release", {}).merge("target_branches" => branches)
32
+ )
33
+ Config.new(root: member.root, path: config.path, data: data)
34
+ end
35
+
19
36
  def member_local_release_config(member:, config:)
20
37
  member_config = Config.load(root: member.root)
21
38
  member_config = member_local_release_config_from_branch(member) || member_config unless member_config.path
@@ -285,7 +285,7 @@ module Kettle
285
285
  return false if !config.release_target_branches.empty?
286
286
  return false unless %w[bump-version install add-changelog].include?(command)
287
287
 
288
- members.any? { |member| member_local_release_config(member: member, config: config) }
288
+ members.any? { |member| member_release_config(member: member, config: config) }
289
289
  end
290
290
 
291
291
  def branch_target_command_results(command:, config:, members:, options:, start_at:)
@@ -315,7 +315,7 @@ module Kettle
315
315
  def member_local_branch_target_command_results(command:, config:, members:, options:, start_at:)
316
316
  runner = CommandRunner.new(execute: options[:execute])
317
317
  members.each_with_object([]) do |member, memo|
318
- member_config = member_local_release_config(member: member, config: config)
318
+ member_config = member_release_config(member: member, config: config)
319
319
  unless member_config
320
320
  memo.concat(command_results_for_current_branch(command: command, config: config, members: [member], options: options))
321
321
  break memo unless memo.last&.ok?
@@ -479,7 +479,7 @@ module Kettle
479
479
 
480
480
  def member_release_target_branches(command:, members:, config:, start_at:)
481
481
  members.each_with_object({}) do |member, memo|
482
- member_config = member_local_release_config(member: member, config: config)
482
+ member_config = member_release_config(member: member, config: config)
483
483
  memo[member.name] = member_branch_targets(command: command, member: member, member_config: member_config, start_at: start_at) if member_config
484
484
  end
485
485
  end
@@ -500,8 +500,8 @@ module Kettle
500
500
  branch_targets.drop(index)
501
501
  end
502
502
 
503
- def member_local_release_config(member:, config:)
504
- BranchTargetConfig.member_local_release_config(member: member, config: config)
503
+ def member_release_config(member:, config:)
504
+ BranchTargetConfig.member_release_config(member: member, config: config)
505
505
  end
506
506
 
507
507
  def install_order(members, config)
@@ -232,6 +232,13 @@ module Kettle
232
232
  fetch_path("release", "target_branches") || fetch_path("branches", "release_targets") || []
233
233
  end
234
234
 
235
+ def member_release_target_branches
236
+ targets = fetch_path("release", "member_target_branches") || {}
237
+ targets.to_h do |member_name, branches|
238
+ [member_name.to_s, Array(branches).map(&:to_s)]
239
+ end
240
+ end
241
+
235
242
  def branch_lanes
236
243
  fetch_path("branch_lanes") || fetch_path("branches", "lanes") || {}
237
244
  end
@@ -290,7 +290,7 @@ module Kettle
290
290
  end
291
291
 
292
292
  def member_local_release_config(member)
293
- BranchTargetConfig.member_local_release_config(member: member, config: config)
293
+ BranchTargetConfig.member_release_config(member: member, config: config)
294
294
  end
295
295
 
296
296
  def shared_changelog?
@@ -3,7 +3,7 @@
3
3
  module Kettle
4
4
  module Family
5
5
  module Version
6
- VERSION = "0.1.29"
6
+ VERSION = "0.1.30"
7
7
  end
8
8
  VERSION = Version::VERSION # Traditional Constant Location
9
9
  end
@@ -453,7 +453,7 @@ module Kettle
453
453
  end
454
454
 
455
455
  def member_local_release_config(member)
456
- BranchTargetConfig.member_local_release_config(member: member, config: config)
456
+ BranchTargetConfig.member_release_config(member: member, config: config)
457
457
  end
458
458
 
459
459
  def checkout_branch_result(branch:, runner:)
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: 0.1.29
4
+ version: 0.1.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -310,10 +310,10 @@ licenses:
310
310
  - AGPL-3.0-only
311
311
  metadata:
312
312
  homepage_uri: https://kettle-family.galtzo.com
313
- source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v0.1.29
314
- changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v0.1.29/CHANGELOG.md
313
+ source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v0.1.30
314
+ changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v0.1.30/CHANGELOG.md
315
315
  bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
316
- documentation_uri: https://www.rubydoc.info/gems/kettle-family/0.1.29
316
+ documentation_uri: https://www.rubydoc.info/gems/kettle-family/0.1.30
317
317
  funding_uri: https://github.com/sponsors/pboling
318
318
  wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
319
319
  news_uri: https://www.railsbling.com/tags/kettle-family
metadata.gz.sig CHANGED
Binary file