kettle-family 0.2.4 → 0.2.6

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: 77de418bfa9adc07c6500af0e4231f28909e6480fb96b730e34ebb215add0f04
4
- data.tar.gz: 3667086145e554a4d4d89e68a2c4b5b2b1b00f59c799040f69a918c236c725ec
3
+ metadata.gz: e60652d7fefc590ce39d77a3344c00d5f54603fec08e881633907309666d7123
4
+ data.tar.gz: 7c63758c740901820321012a2b63816ea578ba240ba9f2553e3c77971e15c416
5
5
  SHA512:
6
- metadata.gz: 30f2a3b90e0fc17022b97a384277dc004b78e4cee2a4a6d1bdf515425db3f2173a846ac00f7614031fda678ceacf6dcd7e7d75fbcb6bfc582ed29ea4debeddb7
7
- data.tar.gz: c1569420377c2692180d7f04a8312de902efac20b84d390514e9599a6d7a5025761abe9a9e2b647ccb713f2dbdc8fa02ee142e52a9df0389f54c7393a0a726ef
6
+ metadata.gz: 814faf3a55b8be19df30565b6a968191a985ed751d3beb3af2079c9bd939f6e7ca2c1968f3709d97f263a2313dbf468d814f28ffd7a72ee36aa3b8d12e6236b4
7
+ data.tar.gz: 1017d4d63d75a6932e6ca21d1e860f3cb822373751a626c0ee8291d1f11228500143b4e13c3cd7ee480fb8d0c43a37f84b214327a0d93fe23c001fc170c0dbc5
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,49 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [0.2.6] - 2026-07-14
34
+
35
+ - TAG: [v0.2.6][0.2.6t]
36
+ - COVERAGE: 95.14% -- 2311/2429 lines in 23 files
37
+ - BRANCH COVERAGE: 76.75% -- 769/1002 branches in 23 files
38
+ - 29.54% documented
39
+
40
+ ### Fixed
41
+
42
+ - Command runner child processes now use a per-child unbundled environment
43
+ instead of mutating global `ENV`, avoiding threaded release crashes on
44
+ TruffleRuby.
45
+ - Family release commands no longer receive the implicit family local path
46
+ environment variable by default, preventing `kettle-release` from committing
47
+ sibling path sources into release lockfiles.
48
+
49
+ ## [0.2.5] - 2026-07-11
50
+
51
+ - TAG: [v0.2.5][0.2.5t]
52
+ - COVERAGE: 95.22% -- 2309/2425 lines in 23 files
53
+ - BRANCH COVERAGE: 76.75% -- 766/998 branches in 23 files
54
+ - 29.54% documented
55
+
56
+ ### Added
57
+
58
+ - Family workflows now inject a derived local family path environment variable
59
+ by default, such as `RUBY_OAUTH_DEV=/path/to/ruby-oauth`, so in-flight family
60
+ members can resolve unreleased sibling gems during orchestration.
61
+ - Family configs now expose `pre_release.image_url_skip_patterns` and pass the
62
+ active config path to release commands so `kettle-pre-release` can skip
63
+ project-specific volatile image URLs.
64
+ - `kettle-family release --skip-bundle-audit` now forwards
65
+ `--skip-bundle-audit` and `KETTLE_DEV_SKIP_BUNDLE_AUDIT=true` to downstream
66
+ `kettle-release` commands.
67
+
68
+ ### Changed
69
+
70
+ - `require "kettle/family"` no longer loads `version_gem` by default; require
71
+ `kettle/family/version_gem` for the optional `VersionGem::Basic` extension.
72
+ - Release lockfile normalization now forces configured local path environment
73
+ variables off after caller overrides so release locks are cleaned
74
+ deterministically.
75
+
33
76
  ## [0.2.4] - 2026-07-04
34
77
 
35
78
  - TAG: [v0.2.4][0.2.4t]
@@ -643,7 +686,11 @@ Please file a bug if you notice a violation of semantic versioning.
643
686
  - Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
644
687
  - Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
645
688
 
646
- [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v0.2.4...HEAD
689
+ [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v0.2.6...HEAD
690
+ [0.2.6]: https://github.com/kettle-dev/kettle-family/compare/v0.2.5...v0.2.6
691
+ [0.2.6t]: https://github.com/kettle-dev/kettle-family/releases/tag/v0.2.6
692
+ [0.2.5]: https://github.com/kettle-dev/kettle-family/compare/v0.2.4...v0.2.5
693
+ [0.2.5t]: https://github.com/kettle-dev/kettle-family/releases/tag/v0.2.5
647
694
  [0.2.4]: https://github.com/kettle-dev/kettle-family/compare/v0.2.3...v0.2.4
648
695
  [0.2.4t]: https://github.com/kettle-dev/kettle-family/releases/tag/v0.2.4
649
696
  [0.2.3]: https://github.com/kettle-dev/kettle-family/compare/v0.2.2...v0.2.3
data/README.md CHANGED
@@ -158,6 +158,17 @@ members:
158
158
  - "**/vendor/**"
159
159
  ```
160
160
 
161
+ Pre-release checks can skip project-specific volatile image URLs with
162
+ shell-style URL patterns. Family release commands pass the active config path
163
+ to member release commands so this setting works when releases run from member
164
+ directories.
165
+
166
+ ```yaml
167
+ pre_release:
168
+ image_url_skip_patterns:
169
+ - https://assets.example.com/generated/*
170
+ ```
171
+
161
172
  Member branch-stack releases can be configured in the member repository itself:
162
173
 
163
174
  ```yaml
@@ -592,7 +603,7 @@ Thanks for RTFM. ☺️
592
603
  [📌gitmoji]: https://gitmoji.dev
593
604
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
594
605
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
595
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-2.400-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
606
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-2.429-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
596
607
  [🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
597
608
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
598
609
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -146,6 +146,7 @@ module Kettle
146
146
  release_skip_steps: nil,
147
147
  release_local_ci: false,
148
148
  release_continue_ci_failures: false,
149
+ release_skip_bundle_audit: false,
149
150
  accept: true,
150
151
  tag: false,
151
152
  push: false,
@@ -403,6 +404,7 @@ module Kettle
403
404
  option :skip_steps, long: "--skip-steps", value: {type: String, usage: "LIST"}, desc: "Pass skip_steps=LIST through to kettle-release commands"
404
405
  option :local_ci, long: "--local-ci", desc: "Pass --local-ci through to kettle-release commands"
405
406
  option :continue_ci_failures, long: "--continue-ci-failures", desc: "Set K_RELEASE_CI_CONTINUE=true for release commands"
407
+ option :skip_bundle_audit, long: "--skip-bundle-audit", desc: "Skip bundle:audit/update during release rake checks"
406
408
  option :no_auto_floors, long: "--no-auto-floors", desc: "Do not raise family dependency floors between member releases" do
407
409
  options[:no_auto_floors] = true
408
410
  end
@@ -422,6 +424,7 @@ module Kettle
422
424
  release_skip_steps: options[:skip_steps],
423
425
  release_local_ci: truthy_option?(:local_ci),
424
426
  release_continue_ci_failures: truthy_option?(:continue_ci_failures),
427
+ release_skip_bundle_audit: truthy_option?(:skip_bundle_audit),
425
428
  release_auto_dependency_floors: !truthy_option?(:no_auto_floors),
426
429
  accept: !options.key?(:accept) || options[:accept],
427
430
  tag: truthy_option?(:tag),
@@ -559,6 +562,7 @@ module Kettle
559
562
  skip_steps: options[:release_skip_steps],
560
563
  local_ci: options[:release_local_ci],
561
564
  continue_ci_failures: options[:release_continue_ci_failures],
565
+ skip_bundle_audit: options[:release_skip_bundle_audit],
562
566
  auto_dependency_floors: options[:release_auto_dependency_floors],
563
567
  gha_sha_pins_upgrade: options[:gha_sha_pins_upgrade],
564
568
  gha_sha_pins_check: options[:check],
@@ -679,6 +683,8 @@ module Kettle
679
683
  end
680
684
 
681
685
  def bump_version_results(members:, options:)
686
+ require_relative "version_bump"
687
+
682
688
  results = VersionBump.new(
683
689
  members: members,
684
690
  target_version: options[:target_version],
@@ -114,15 +114,14 @@ module Kettle
114
114
  def call(member:, phase:, command:, env: {}, interactive: false)
115
115
  argv = command_argv(member: member, command: command, env: env)
116
116
  process_env = process_env(member: member, env: env)
117
+ spawn_options = process_options
117
118
  return skipped_result(member: member, phase: phase, argv: argv) unless execute
118
119
 
119
120
  started = Process.clock_gettime(Process::CLOCK_MONOTONIC)
120
- stdout, stderr, status = with_unbundled_environment do
121
- if interactive
122
- run_interactive(env: process_env, argv: argv, chdir: member.root, member_name: member.name)
123
- else
124
- Open3.capture3(process_env, *argv, chdir: member.root)
125
- end
121
+ stdout, stderr, status = if interactive
122
+ run_interactive(env: process_env, argv: argv, chdir: member.root, member_name: member.name, process_options: spawn_options)
123
+ else
124
+ Open3.capture3(process_env, *argv, chdir: member.root, **spawn_options)
126
125
  end
127
126
  stdout = normalize_output(stdout)
128
127
  stderr = normalize_output(stderr)
@@ -146,16 +145,16 @@ module Kettle
146
145
 
147
146
  attr_reader :execute, :accept, :gem_signing_password, :otp_coordinator
148
147
 
149
- def run_interactive(env:, argv:, chdir:, member_name:)
150
- return run_interactive_pty(env: env, argv: argv, chdir: chdir, member_name: member_name) if pty_available?
148
+ def run_interactive(env:, argv:, chdir:, member_name:, process_options:)
149
+ return run_interactive_pty(env: env, argv: argv, chdir: chdir, member_name: member_name, process_options: process_options) if pty_available?
151
150
 
152
- run_interactive_open3(env: env, argv: argv, chdir: chdir, member_name: member_name)
151
+ run_interactive_open3(env: env, argv: argv, chdir: chdir, member_name: member_name, process_options: process_options)
153
152
  end
154
153
 
155
- def run_interactive_pty(env:, argv:, chdir:, member_name:)
154
+ def run_interactive_pty(env:, argv:, chdir:, member_name:, process_options:)
156
155
  stdout = +""
157
156
  status = nil
158
- PTY.spawn(env, *argv, chdir: chdir) do |output, input, pid|
157
+ PTY.spawn(env, *argv, chdir: chdir, **process_options) do |output, input, pid|
159
158
  begin
160
159
  loop do
161
160
  readers = [output]
@@ -180,11 +179,11 @@ module Kettle
180
179
  [stdout, "", status]
181
180
  end
182
181
 
183
- def run_interactive_open3(env:, argv:, chdir:, member_name:)
182
+ def run_interactive_open3(env:, argv:, chdir:, member_name:, process_options:)
184
183
  captured_stdout = +""
185
184
  captured_stderr = +""
186
185
  status = nil
187
- Open3.popen3(env, *argv, chdir: chdir) do |input, output, error, wait_thread|
186
+ Open3.popen3(env, *argv, chdir: chdir, **process_options) do |input, output, error, wait_thread|
188
187
  readers = [output, error]
189
188
  readers << $stdin if $stdin.tty? && !otp_coordinator
190
189
  until readers.empty?
@@ -280,14 +279,6 @@ module Kettle
280
279
  output.to_s.encode("UTF-8", invalid: :replace, undef: :replace, replace: "")
281
280
  end
282
281
 
283
- def with_unbundled_environment
284
- if defined?(Bundler)
285
- Bundler.with_unbundled_env { yield }
286
- else
287
- yield
288
- end
289
- end
290
-
291
282
  def command_argv(member:, command:, env: {})
292
283
  argv = normalize_command(command)
293
284
  return argv unless mise_configured?(member)
@@ -304,7 +295,21 @@ module Kettle
304
295
  end
305
296
 
306
297
  def process_env(member:, env:)
307
- return env unless mise_configured?(member)
298
+ base_env = unbundled_process_env
299
+ return base_env.merge(env) unless mise_configured?(member)
300
+
301
+ base_env
302
+ end
303
+
304
+ def unbundled_process_env
305
+ return Bundler.original_env if defined?(Bundler) && Bundler.respond_to?(:original_env)
306
+ return Bundler.unbundled_env if defined?(Bundler) && Bundler.respond_to?(:unbundled_env)
307
+
308
+ {}
309
+ end
310
+
311
+ def process_options
312
+ return {unsetenv_others: true} if defined?(Bundler)
308
313
 
309
314
  {}
310
315
  end
@@ -40,6 +40,26 @@ module Kettle
40
40
  fetch_path("family", "name") || File.basename(root)
41
41
  end
42
42
 
43
+ def family_local_path_env_name
44
+ configured = fetch_path("family", "local_path_env")
45
+ return nil if configured == false
46
+ return configured.to_s unless configured.to_s.empty?
47
+
48
+ "#{family_name.gsub(/[^A-Za-z0-9]+/, "_").upcase}_DEV"
49
+ end
50
+
51
+ def family_local_path_root
52
+ configured = fetch_path("family", "local_path_root")
53
+ configured ? expand_config_relative_path(configured) : root
54
+ end
55
+
56
+ def family_local_path_env
57
+ name = family_local_path_env_name
58
+ return {} unless name
59
+
60
+ {name => family_local_path_root}
61
+ end
62
+
43
63
  def family_mode
44
64
  fetch_path("family", "mode") || "monorepo"
45
65
  end
@@ -118,6 +138,10 @@ module Kettle
118
138
  fetch_path("check", "readme_links") || {}
119
139
  end
120
140
 
141
+ def pre_release_image_url_skip_patterns
142
+ Array(fetch_path("pre_release", "image_url_skip_patterns")).map(&:to_s)
143
+ end
144
+
121
145
  def changelog_mode
122
146
  fetch_path("changelog", "mode") || "member"
123
147
  end
@@ -250,7 +274,7 @@ module Kettle
250
274
  private
251
275
 
252
276
  def default_release_disable_local_path_env
253
- %w[
277
+ local_envs = %w[
254
278
  K_JEM_TEMPLATING
255
279
  SMORG_RB_DEV
256
280
  TSLP_DEV
@@ -260,6 +284,7 @@ module Kettle
260
284
  GALTZO_FLOSS_DEV
261
285
  UR_BRAIN_DEV
262
286
  ]
287
+ [family_local_path_env_name, *local_envs].compact
263
288
  end
264
289
 
265
290
  def expand_config_relative_path(value)
@@ -3,7 +3,7 @@
3
3
  module Kettle
4
4
  module Family
5
5
  module Version
6
- VERSION = "0.2.4"
6
+ VERSION = "0.2.6"
7
7
  end
8
8
  VERSION = Version::VERSION # Traditional Constant Location
9
9
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "version_gem"
4
+ require_relative "version"
5
+
6
+ Kettle::Family::Version.class_eval do
7
+ extend VersionGem::Basic
8
+ end
@@ -44,7 +44,7 @@ module Kettle
44
44
  "BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES" => "true"
45
45
  }.freeze
46
46
 
47
- def initialize(command:, config:, members:, execute: false, accept: true, commit: true, allow_dirty: false, publish: false, push: false, tag: false, start_step: nil, skip_steps: nil, local_ci: false, continue_ci_failures: false, auto_dependency_floors: nil, gha_sha_pins_upgrade: "patch", gha_sha_pins_check: false, env_overrides: {}, debug: false, gem_signing_password: nil, jobs: nil, progress_io: nil, bup_args: [], bex_args: [], start_member: nil, start_branch: nil)
47
+ def initialize(command:, config:, members:, execute: false, accept: true, commit: true, allow_dirty: false, publish: false, push: false, tag: false, start_step: nil, skip_steps: nil, local_ci: false, continue_ci_failures: false, skip_bundle_audit: false, auto_dependency_floors: nil, gha_sha_pins_upgrade: "patch", gha_sha_pins_check: false, env_overrides: {}, debug: false, gem_signing_password: nil, jobs: nil, progress_io: nil, bup_args: [], bex_args: [], start_member: nil, start_branch: nil)
48
48
  @command = command
49
49
  @config = config
50
50
  @members = members
@@ -59,6 +59,7 @@ module Kettle
59
59
  @skip_steps = skip_steps
60
60
  @local_ci = local_ci
61
61
  @continue_ci_failures = continue_ci_failures
62
+ @skip_bundle_audit = skip_bundle_audit
62
63
  @auto_dependency_floors = auto_dependency_floors.nil? ? config.release_auto_dependency_floors? : auto_dependency_floors
63
64
  @gha_sha_pins_upgrade = gha_sha_pins_upgrade
64
65
  @gha_sha_pins_check = gha_sha_pins_check
@@ -86,7 +87,7 @@ module Kettle
86
87
 
87
88
  private
88
89
 
89
- attr_reader :command, :config, :members, :execute, :accept, :commit, :allow_dirty, :publish, :push, :tag, :start_step, :skip_steps, :local_ci, :continue_ci_failures, :auto_dependency_floors, :gha_sha_pins_upgrade, :gha_sha_pins_check, :env_overrides, :debug, :jobs, :progress_io, :bup_args, :bex_args, :start_member, :start_branch
90
+ attr_reader :command, :config, :members, :execute, :accept, :commit, :allow_dirty, :publish, :push, :tag, :start_step, :skip_steps, :local_ci, :continue_ci_failures, :skip_bundle_audit, :auto_dependency_floors, :gha_sha_pins_upgrade, :gha_sha_pins_check, :env_overrides, :debug, :jobs, :progress_io, :bup_args, :bex_args, :start_member, :start_branch
90
91
 
91
92
  def current_branch_results(workflow_members)
92
93
  return check_results(workflow_members) if command == "check"
@@ -287,6 +288,7 @@ module Kettle
287
288
  skip_steps: skip_steps,
288
289
  local_ci: local_ci,
289
290
  continue_ci_failures: continue_ci_failures,
291
+ skip_bundle_audit: skip_bundle_audit,
290
292
  auto_dependency_floors: auto_dependency_floors,
291
293
  gha_sha_pins_upgrade: gha_sha_pins_upgrade,
292
294
  gha_sha_pins_check: gha_sha_pins_check,
@@ -493,6 +495,8 @@ module Kettle
493
495
  return unless auto_dependency_floors
494
496
  return if dependent_members.empty?
495
497
 
498
+ require_relative "dependency_floor"
499
+
496
500
  floor_results = DependencyFloor.new(
497
501
  released_members: released_members,
498
502
  dependent_members: dependent_members,
@@ -618,6 +622,7 @@ module Kettle
618
622
  args << "start_step=#{start_step}" if start_step
619
623
  args << "skip_steps=#{skip_steps}" if skip_steps && !skip_steps.to_s.empty?
620
624
  args << "--local-ci" if local_ci
625
+ args << "--skip-bundle-audit" if skip_bundle_audit
621
626
  return command if args.empty?
622
627
 
623
628
  command.is_a?(Array) ? [*command, *args] : "#{command} #{args.join(" ")}"
@@ -630,9 +635,11 @@ module Kettle
630
635
  end
631
636
 
632
637
  def base_release_env
633
- env = config.release_env.dup
638
+ env = config.release_env
639
+ env["KETTLE_FAMILY_CONFIG"] = config.path if config.path
634
640
  env.merge!(TEMPLATE_QUIET_ENV) unless debug
635
641
  env["K_RELEASE_CI_CONTINUE"] = "true" if continue_ci_failures
642
+ env["KETTLE_DEV_SKIP_BUNDLE_AUDIT"] = "true" if skip_bundle_audit
636
643
  env
637
644
  end
638
645
 
@@ -825,6 +832,7 @@ module Kettle
825
832
 
826
833
  def workflow_env
827
834
  {}.tap do |env|
835
+ env.merge!(config.family_local_path_env)
828
836
  if command == "template"
829
837
  env["KETTLE_JEM_TEMPLATE_PROFILE"] = config.template_profile if config.template_profile
830
838
  env["KJ_REPOSITORY_TOPOLOGY"] = config.template_repository_topology if config.template_repository_topology
@@ -904,12 +912,12 @@ module Kettle
904
912
 
905
913
  def release_lockfile_env
906
914
  base_release_env
907
- .merge(config.release_disable_local_path_env.to_h { |key| [key, "false"] })
908
915
  .merge(env_overrides)
916
+ .merge(config.release_disable_local_path_env.to_h { |key| [key, "false"] })
909
917
  end
910
918
 
911
919
  def release_allowed_local_path_roots
912
- env_overrides.filter_map do |key, value|
920
+ config.release_env.merge(env_overrides).filter_map do |key, value|
913
921
  next unless key.end_with?("_LOCAL", "_DEV")
914
922
  next if value.to_s.empty? || value.to_s.casecmp("false").zero?
915
923
 
data/lib/kettle/family.rb CHANGED
@@ -10,8 +10,6 @@ require_relative "family/command_runner"
10
10
  require_relative "family/readiness_check"
11
11
  require_relative "family/changelog_check"
12
12
  require_relative "family/git_status"
13
- require_relative "family/version_bump"
14
- require_relative "family/dependency_floor"
15
13
  require_relative "family/branch_lane_audit"
16
14
  require_relative "family/config"
17
15
  require_relative "family/branch_target_config"
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.2.4
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -66,59 +66,59 @@ dependencies:
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0.1'
68
68
  - !ruby/object:Gem::Dependency
69
- name: tsort
69
+ name: kettle-dev
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '0.2'
74
+ version: '2.3'
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: 2.3.0
75
78
  type: :runtime
76
79
  prerelease: false
77
80
  version_requirements: !ruby/object:Gem::Requirement
78
81
  requirements:
79
82
  - - "~>"
80
83
  - !ruby/object:Gem::Version
81
- version: '0.2'
84
+ version: '2.3'
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: 2.3.0
82
88
  - !ruby/object:Gem::Dependency
83
- name: version_gem
89
+ name: tsort
84
90
  requirement: !ruby/object:Gem::Requirement
85
91
  requirements:
86
92
  - - "~>"
87
93
  - !ruby/object:Gem::Version
88
- version: '1.1'
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- version: 1.1.13
94
+ version: '0.2'
92
95
  type: :runtime
93
96
  prerelease: false
94
97
  version_requirements: !ruby/object:Gem::Requirement
95
98
  requirements:
96
99
  - - "~>"
97
100
  - !ruby/object:Gem::Version
98
- version: '1.1'
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- version: 1.1.13
101
+ version: '0.2'
102
102
  - !ruby/object:Gem::Dependency
103
- name: kettle-dev
103
+ name: version_gem
104
104
  requirement: !ruby/object:Gem::Requirement
105
105
  requirements:
106
106
  - - "~>"
107
107
  - !ruby/object:Gem::Version
108
- version: '2.3'
108
+ version: '1.1'
109
109
  - - ">="
110
110
  - !ruby/object:Gem::Version
111
- version: 2.3.0
111
+ version: 1.1.13
112
112
  type: :runtime
113
113
  prerelease: false
114
114
  version_requirements: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '2.3'
118
+ version: '1.1'
119
119
  - - ">="
120
120
  - !ruby/object:Gem::Version
121
- version: 2.3.0
121
+ version: 1.1.13
122
122
  - !ruby/object:Gem::Dependency
123
123
  name: bundler-audit
124
124
  requirement: !ruby/object:Gem::Requirement
@@ -176,7 +176,7 @@ dependencies:
176
176
  version: '3.1'
177
177
  - - ">="
178
178
  - !ruby/object:Gem::Version
179
- version: 3.1.3
179
+ version: 3.1.4
180
180
  type: :development
181
181
  prerelease: false
182
182
  version_requirements: !ruby/object:Gem::Requirement
@@ -186,7 +186,7 @@ dependencies:
186
186
  version: '3.1'
187
187
  - - ">="
188
188
  - !ruby/object:Gem::Version
189
- version: 3.1.3
189
+ version: 3.1.4
190
190
  - !ruby/object:Gem::Dependency
191
191
  name: kettle-test
192
192
  requirement: !ruby/object:Gem::Requirement
@@ -196,7 +196,7 @@ dependencies:
196
196
  version: '2.0'
197
197
  - - ">="
198
198
  - !ruby/object:Gem::Version
199
- version: 2.0.9
199
+ version: 2.0.10
200
200
  type: :development
201
201
  prerelease: false
202
202
  version_requirements: !ruby/object:Gem::Requirement
@@ -206,7 +206,7 @@ dependencies:
206
206
  version: '2.0'
207
207
  - - ">="
208
208
  - !ruby/object:Gem::Version
209
- version: 2.0.9
209
+ version: 2.0.10
210
210
  - !ruby/object:Gem::Dependency
211
211
  name: turbo_tests2
212
212
  requirement: !ruby/object:Gem::Requirement
@@ -216,7 +216,7 @@ dependencies:
216
216
  version: '3.1'
217
217
  - - ">="
218
218
  - !ruby/object:Gem::Version
219
- version: 3.1.5
219
+ version: 3.1.6
220
220
  type: :development
221
221
  prerelease: false
222
222
  version_requirements: !ruby/object:Gem::Requirement
@@ -226,7 +226,7 @@ dependencies:
226
226
  version: '3.1'
227
227
  - - ">="
228
228
  - !ruby/object:Gem::Version
229
- version: 3.1.5
229
+ version: 3.1.6
230
230
  - !ruby/object:Gem::Dependency
231
231
  name: ruby-progressbar
232
232
  requirement: !ruby/object:Gem::Requirement
@@ -250,7 +250,7 @@ dependencies:
250
250
  version: '1.0'
251
251
  - - ">="
252
252
  - !ruby/object:Gem::Version
253
- version: 1.0.4
253
+ version: 1.0.5
254
254
  type: :development
255
255
  prerelease: false
256
256
  version_requirements: !ruby/object:Gem::Requirement
@@ -260,7 +260,7 @@ dependencies:
260
260
  version: '1.0'
261
261
  - - ">="
262
262
  - !ruby/object:Gem::Version
263
- version: 1.0.4
263
+ version: 1.0.5
264
264
  - !ruby/object:Gem::Dependency
265
265
  name: gitmoji-regex
266
266
  requirement: !ruby/object:Gem::Requirement
@@ -270,7 +270,7 @@ dependencies:
270
270
  version: '2.0'
271
271
  - - ">="
272
272
  - !ruby/object:Gem::Version
273
- version: 2.0.3
273
+ version: 2.0.4
274
274
  type: :development
275
275
  prerelease: false
276
276
  version_requirements: !ruby/object:Gem::Requirement
@@ -280,7 +280,7 @@ dependencies:
280
280
  version: '2.0'
281
281
  - - ">="
282
282
  - !ruby/object:Gem::Version
283
- version: 2.0.3
283
+ version: 2.0.4
284
284
  description: "\U0001F469‍\U0001F469‍\U0001F467‍\U0001F467 Kettle::Family provides
285
285
  scripts and conventions for coordinating related Ruby gems as one family."
286
286
  email:
@@ -332,6 +332,7 @@ files:
332
332
  - lib/kettle/family/selection.rb
333
333
  - lib/kettle/family/version.rb
334
334
  - lib/kettle/family/version_bump.rb
335
+ - lib/kettle/family/version_gem.rb
335
336
  - lib/kettle/family/workflow.rb
336
337
  - sig/kettle/family.rbs
337
338
  - sig/kettle/family/version.rbs
@@ -340,10 +341,10 @@ licenses:
340
341
  - AGPL-3.0-only
341
342
  metadata:
342
343
  homepage_uri: https://kettle-family.galtzo.com
343
- source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v0.2.4
344
- changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v0.2.4/CHANGELOG.md
344
+ source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v0.2.6
345
+ changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v0.2.6/CHANGELOG.md
345
346
  bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
346
- documentation_uri: https://www.rubydoc.info/gems/kettle-family/0.2.4
347
+ documentation_uri: https://www.rubydoc.info/gems/kettle-family/0.2.6
347
348
  funding_uri: https://github.com/sponsors/pboling
348
349
  wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
349
350
  news_uri: https://www.railsbling.com/tags/kettle-family
metadata.gz.sig CHANGED
Binary file