kettle-family 1.2.62 → 1.2.63

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: 04321f7c14998edb27e9dd4f88d54e999bed1bdf8397678f3b3fa6d883b4c17c
4
- data.tar.gz: 13af696225888e53942d50400bf35f68244591a24033d7e1398339f7e0e878a6
3
+ metadata.gz: 82adc3fa76e0f5e3cea98f7a02152627353175b2e0aa2b922eeb4905aee9f1a8
4
+ data.tar.gz: 70094edc544adbdec3240787de1c2e7c8b22e749fe8dfb9e9dca0d97253d00f3
5
5
  SHA512:
6
- metadata.gz: bcf9301368288f9914849fb8cad0f5963b6d9ef984be6cca2b0e169fc2e66655ba6ffc70c5970f88a2e800fbcbcc5f46df812e150cf0b0e4a86454f013489353
7
- data.tar.gz: 76cd17c2e40a09672ec728c103c3e6ee8273a97073ac85fb64f5d38cd1a9576309d41036d260e77a5eb4454435bfda99093f76f94aa9caa8f5a27d4f16bda299
6
+ metadata.gz: 571b5e2c915f5dcfa9e5415b6d4a0762f30c6fe005c248c7dd42285f3960f452b74fa8063c5ee05e9eddb2d116c7e5204c353eaed877428727ad238ba83e2d42
7
+ data.tar.gz: 7f7f630a5f1b06d17ffe8eeb5bef4a20579788bd0b4cebea30c0468763bdbba72cb8507920fe076396124b3cc91efe5ab30c683864a9d9bc4c523b5738142162
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,44 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [1.2.63] - 2026-08-28
34
+
35
+ - TAG: [v1.2.63][1.2.63t]
36
+ - COVERAGE: 93.07% -- 5332/5729 lines in 33 files
37
+ - BRANCH COVERAGE: 76.07% -- 2152/2829 branches in 33 files
38
+ - 29.62% documented
39
+
40
+ ### Changed
41
+
42
+ - Document release-wave dependency propagation and later-wave lockfile refresh behavior.
43
+
44
+ - Document kettle-family bup as the pre-templating bundle update workflow.
45
+
46
+ - Document the complete kettle-family command reference, including bup and workflow aliases.
47
+
48
+ - Clarify that executed kettle-family bup runs commit successful lockfile updates unless --no-commit is supplied.
49
+
50
+ - [kc] kettle-jem/prepare: updated 10 project files:
51
+ - configuration (1)
52
+ - dependencies (9)
53
+
54
+ - [kc] kettle-jem/template: updated 7 project files:
55
+ - code and tests (1)
56
+ - configuration (1)
57
+ - dependencies (1)
58
+ - documentation (2)
59
+ - other (2)
60
+
61
+ ### Fixed
62
+
63
+ - Reject template autostashes outside lib/, spec/, and test/ before any member is mutated.
64
+
65
+ - Family release waves now refresh dependent lockfiles even when their declared dependency floors already match a newly released family version.
66
+
67
+ - Restore the runtime version_gem dependency required by the version API.
68
+
69
+ - Install refreshed downstream release bundles before invoking their release commands.
70
+
33
71
  ## [1.2.62] - 2026-08-26
34
72
 
35
73
  - TAG: [v1.2.62][1.2.62t]
@@ -2207,7 +2245,9 @@ Please file a bug if you notice a violation of semantic versioning.
2207
2245
  - Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
2208
2246
  - Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
2209
2247
 
2210
- [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.62...HEAD
2248
+ [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.63...HEAD
2249
+ [1.2.63]: https://github.com/kettle-dev/kettle-family/compare/v1.2.62...v1.2.63
2250
+ [1.2.63t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.63
2211
2251
  [1.2.62]: https://github.com/kettle-dev/kettle-family/compare/v1.2.61...v1.2.62
2212
2252
  [1.2.62t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.62
2213
2253
  [1.2.61]: https://github.com/kettle-dev/kettle-family/compare/v1.2.60...v1.2.61
data/README.md CHANGED
@@ -97,7 +97,9 @@ The _amazing_ test matrix is powered by the kettle-dev stack.
97
97
 
98
98
  </details>
99
99
 
100
- ### Enterprise Support [![Tidelift](https://tidelift.com/badges/package/rubygems/kettle-family)](https://tidelift.com/subscription/pkg/rubygems-kettle-family?utm_source=rubygems-kettle-family&utm_medium=referral&utm_campaign=readme)
100
+ ### Enterprise Support
101
+
102
+ [![Tidelift](https://tidelift.com/badges/package/rubygems/kettle-family)](https://tidelift.com/subscription/pkg/rubygems-kettle-family?utm_source=rubygems-kettle-family&utm_medium=referral&utm_campaign=readme)
101
103
 
102
104
  Available as part of the Tidelift Subscription.
103
105
 
@@ -260,6 +262,42 @@ completed an earlier release wave; once the dependency is available, the
260
262
  member resolves it from the registry. Release lockfile normalization always
261
263
  disables local paths regardless of this strategy.
262
264
 
265
+ ### Release waves and dependency refresh
266
+
267
+ Release waves are both a sequencing mechanism and a dependency propagation
268
+ mechanism. `kettle-family` does not start a later wave until every member in
269
+ the current wave has succeeded. Members in one wave may run concurrently; if
270
+ one member fails, other members already running in that wave are allowed to
271
+ finish, but later waves do not start.
272
+
273
+ After a wave succeeds during an executed publish run, `kettle-family`
274
+ automatically reconciles declared family dependency floors in the remaining
275
+ members. This propagation still runs when a member's declared floor already
276
+ matches the newly released version: its lockfiles may still resolve the prior
277
+ published release. Once all selected family dependencies of a later member have
278
+ completed, it waits for their published versions to become available in the
279
+ registry and runs a targeted lockfile refresh equivalent to:
280
+
281
+ ```console
282
+ bundle lock --update RELEASED_MEMBER_NAMES --add-checksums
283
+ ```
284
+
285
+ It then installs that exact locked bundle before starting the dependent release.
286
+
287
+ The same targeted refresh is applied to the member's CI/Appraisal bundle
288
+ lockfiles when those files are present. The refreshed lockfiles and dependency
289
+ floor changes are committed before that member's release starts, so later
290
+ waves test and publish against the versions produced by earlier waves rather
291
+ than stale published versions. A resumed `--only pend` publish also reconciles
292
+ family dependencies that were published by an earlier invocation.
293
+
294
+ This propagation runs for `kettle-family release --execute --publish` when
295
+ `release.auto_dependency_floors` is enabled (the default). It is distinct from
296
+ `release.normalize_lockfiles`, which removes local-path and checksum problems
297
+ before an individual release. A dry run or a standalone member
298
+ `kettle-release` cannot update downstream family lockfiles. Registry
299
+ propagation is retried before the family reports a dependency refresh failure.
300
+
263
301
  For `changelog.mode: root`, release commands pass `K_CHANGELOG_GEM_NAME` as the
264
302
  configured family name and `K_CHANGELOG_VERSION_FILE` when `version_file` is
265
303
  configured, so `kettle-changelog` can operate from a repository root without a
@@ -336,6 +374,48 @@ publish command explicitly includes `--secrets-provider`.
336
374
 
337
375
  ## 🔧 Basic Usage
338
376
 
377
+ ### Command reference
378
+
379
+ The command names below are available from `kettle-family --help`:
380
+
381
+ | Command | Purpose |
382
+ |---------|---------|
383
+ | `version` | Print the kettle-family version. |
384
+ | `help` | Print top-level or command-specific help. |
385
+ | `mise-trust` | Trust mise configuration for the family. |
386
+ | `discover` | Discover members and print their execution order. |
387
+ | `plan` | Alias for `discover`. |
388
+ | `report` | Print family discovery and configuration details. |
389
+ | `metadata` | Print member version, Ruby floor, license, and author metadata. |
390
+ | `check` | Run internal read-only readiness checks. |
391
+ | `clean-unreleased` | Uninstall locally installed family versions newer than released versions. |
392
+ | `reconcile-releases` | Create verified missing GitHub Releases for published tags. |
393
+ | `reset` | Reset a managed family artifact, such as release lockfiles. |
394
+ | `test` | Run the configured test workflow for each selected member. |
395
+ | `lint` | Run the configured lint workflow for each selected member. |
396
+ | `docs` | Run the configured documentation workflow for each selected member. |
397
+ | `template` | Apply the configured `kettle-jem` template for each selected member. |
398
+ | `gha-sha-pins` | Inspect or update GitHub Actions SHA pins. |
399
+ | `bup` | Run `bundle update --all`, or update a named dependency, per member. |
400
+ | `bupb` | Run `bundle update --bundler` per member. |
401
+ | `bex` | Run an arbitrary `bundle exec` command per member. |
402
+ | `install` | Build and install selected local family gems. |
403
+ | `bump` | Check, plan, or execute family version alignment. |
404
+ | `bump-version` | Deprecated alias for `bump`. |
405
+ | `add-changelog` | Add a structured entry to a member's `Unreleased` section. |
406
+ | `release` | Prepare or publish selected member releases in dependency waves. |
407
+ | `push` | Push selected member repositories. |
408
+ | `pull` | Pull selected member repositories with rebase. |
409
+ | `sync` | Fetch and rebase selected member repositories and branches. |
410
+ | `up` | Pull with rebase, then push selected member repositories. |
411
+ | `branch-lanes` | Audit configured long-lived release branches. |
412
+ | `release-state` | Report release state for selected members. |
413
+ | `state` | Alias for `release-state`. |
414
+
415
+ Use `kettle-family help COMMAND` for command-specific options. Most workflow
416
+ commands also accept `--only`, `--exclude`, `--start-at`, `--jobs`,
417
+ `--execute`, `--dry-run`, `--commit`, and `--no-commit` as applicable.
418
+
339
419
  Inspect discovery and release plans before executing them:
340
420
 
341
421
  ```console
@@ -402,6 +482,22 @@ Most commands accept `--json` to print a machine-readable report instead of the
402
482
  text report, and `--report PATH` to write that JSON report while still printing
403
483
  the normal text report.
404
484
 
485
+ Refresh member dependencies before templating when the generated project should
486
+ be validated against the latest compatible releases:
487
+
488
+ ```console
489
+ kettle-family bup --execute
490
+ kettle-family template --execute
491
+ ```
492
+
493
+ `bup` runs `bundle update --all` for every selected member. A gem name may be
494
+ passed to update only that dependency, for example `kettle-family bup --execute
495
+ kettle-test`. Executed updates commit successful lockfile changes by default;
496
+ use `--no-commit` for a working-tree-only refresh, or `--commit` to state the
497
+ default explicitly. Local dependency environment variables are preserved when
498
+ explicitly supplied, so use the family's local or released dependency mode
499
+ deliberately before running it.
500
+
405
501
  Plan or update GitHub Actions workflow SHA pins across the selected family
406
502
  members:
407
503
 
@@ -585,6 +681,14 @@ member's generated files and autostash are left in place for inspection, while
585
681
  successful or unreached members are restored normally. A successful run always
586
682
  restores its autostashes regardless of this option.
587
683
 
684
+ Before creating any autostash, the workflow checks every selected member
685
+ checkout. Automatic stashing is allowed only when all dirty paths are under
686
+ `lib/`, `spec/`, or `test/`; changes elsewhere, including changelogs, lockfiles,
687
+ configuration, and generated workflow files, fail the run before templating
688
+ starts and are listed in the error. This preflight is separate from
689
+ `--no-cleanup`: the latter preserves a failed template for debugging, while
690
+ `--no-autostash` disables even the permitted source/test stashes.
691
+
588
692
  | Mark | Meaning |
589
693
  |------|---------|
590
694
  | `>` | A phase or command step started. |
@@ -871,7 +975,7 @@ Thanks for RTFM. ☺️
871
975
  [📌gitmoji]: https://gitmoji.dev
872
976
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
873
977
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
874
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-5.696-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
978
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-5.729-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
875
979
  [🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
876
980
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
877
981
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -61,8 +61,8 @@ module Kettle
61
61
  options[:commit] = false
62
62
  end
63
63
  base.option :allow_dirty, long: "--allow-dirty", desc: "Reserved for compatibility; member repos manage their own commit safety"
64
- base.option :autostash, long: "--autostash", desc: "Use the default template autostash behavior"
65
- base.option :no_autostash, long: "--no-autostash", desc: "Fail template runs when a member worktree is dirty" do
64
+ base.option :autostash, long: "--autostash", desc: "Allow automatic stashing of eligible lib/, spec/, and test/ changes"
65
+ base.option :no_autostash, long: "--no-autostash", desc: "Disable automatic stashing and fail when a member worktree is dirty" do
66
66
  options[:autostash] = false
67
67
  end
68
68
  end
@@ -16,6 +16,13 @@ module Kettle
16
16
 
17
17
  stdout.lines.map(&:chomp).reject(&:empty?)
18
18
  end
19
+
20
+ def self.path_from_status_line(status_line)
21
+ line = status_line.to_s
22
+ path = (line.length >= 3 && line[2] == " ") ? line[3..] : line
23
+ path = path.to_s.strip
24
+ path.include?(" -> ") ? path.split(" -> ", 2).last : path
25
+ end
19
26
  end
20
27
  end
21
28
  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.62"
8
+ VERSION = "1.2.63"
9
9
  end
10
10
  # Current gem version exposed at the traditional constant location.
11
11
  VERSION = Version::VERSION # Traditional Constant Location
@@ -59,6 +59,7 @@ module Kettle
59
59
  ],
60
60
  "bupb" => %w[bundle update --bundler]
61
61
  }.freeze
62
+ TEMPLATE_AUTOSTASH_ALLOWED_DIRECTORIES = %w[lib spec test].freeze
62
63
  PRE_TEMPLATE_BOOTSTRAP_GEMS = %w[nomono kettle-dev].freeze
63
64
  GIT_SYNC_COMMANDS = {
64
65
  "push" => [["push", %w[git push]]],
@@ -213,6 +214,9 @@ module Kettle
213
214
  end
214
215
  checkout_preflight = [] unless checkout_preflight.all?(&:ok?)
215
216
 
217
+ dirty_preflight = template_dirty_worktree_preflight_results
218
+ return checkout_preflight + dirty_preflight unless dirty_preflight.all?(&:ok?)
219
+
216
220
  sync_results, stashes = template_worktree_sync_results(runner: runner)
217
221
  unless sync_results.all?(&:ok?)
218
222
  return checkout_preflight + sync_results + restore_template_autostashes(
@@ -253,8 +257,9 @@ module Kettle
253
257
  template_sync_members.each do |member|
254
258
  dirty_paths = GitStatus.dirty_paths(member.root)
255
259
  if dirty_paths.any?
256
- unless autostash
257
- results << template_dirty_worktree_result(member, dirty_paths)
260
+ blocked_paths = template_blocking_dirty_paths(dirty_paths)
261
+ if blocked_paths.any?
262
+ results << template_dirty_worktree_result(member, blocked_paths)
258
263
  break
259
264
  end
260
265
 
@@ -283,6 +288,27 @@ module Kettle
283
288
  [results, stashes]
284
289
  end
285
290
 
291
+ def template_dirty_worktree_preflight_results
292
+ template_sync_members.filter_map do |member|
293
+ dirty_paths = GitStatus.dirty_paths(member.root)
294
+ blocked_paths = template_blocking_dirty_paths(dirty_paths)
295
+ next if blocked_paths.empty?
296
+
297
+ template_dirty_worktree_result(member, blocked_paths)
298
+ end
299
+ end
300
+
301
+ def template_blocking_dirty_paths(dirty_paths)
302
+ return dirty_paths unless autostash
303
+
304
+ dirty_paths.reject { |path| template_autostash_allowed_path?(path) }
305
+ end
306
+
307
+ def template_autostash_allowed_path?(status_line)
308
+ path = GitStatus.path_from_status_line(status_line)
309
+ TEMPLATE_AUTOSTASH_ALLOWED_DIRECTORIES.include?(path.split("/", 2).first)
310
+ end
311
+
286
312
  def restore_template_autostashes(stashes, runner:, preserve_members: [])
287
313
  preserve_members = Array(preserve_members).map(&:to_s)
288
314
  stashes.reverse_each.map do |stash|
@@ -379,7 +405,7 @@ module Kettle
379
405
  end
380
406
 
381
407
  def template_generated_lockfile_path?(status_line)
382
- path = status_line.to_s.sub(/\A.../, "").strip
408
+ path = GitStatus.path_from_status_line(status_line)
383
409
  [
384
410
  "Gemfile.lock",
385
411
  "Appraisal.root.gemfile.lock",
@@ -449,11 +475,17 @@ module Kettle
449
475
  end
450
476
 
451
477
  def template_dirty_worktree_result(member, dirty_paths)
478
+ stash_guidance = if autostash
479
+ "automatic template autostash is limited to lib/, spec/, and test/ files"
480
+ else
481
+ "automatic template autostash is disabled"
482
+ end
452
483
  template_sync_failure_result(
453
484
  member,
454
485
  [
455
- "dirty worktree blocks template sync; remove --no-autostash, or commit or stash changes before retrying",
456
- *dirty_paths
486
+ "dirty worktree blocks template sync; clean these files before retrying:",
487
+ *dirty_paths.map { |path| " #{GitStatus.path_from_status_line(path)}" },
488
+ stash_guidance
457
489
  ].join("\n"),
458
490
  reason: "dirty worktree blocks template sync"
459
491
  )
@@ -1471,16 +1503,19 @@ module Kettle
1471
1503
  mode: execute ? :execute : :dry_run
1472
1504
  ).results
1473
1505
  memo.concat(floor_results)
1474
- return if floor_results.empty?
1475
1506
  return if floor_results.any? && !floor_results.all?(&:ok?)
1476
1507
 
1477
1508
  append_dependency_floor_lockfile_results(released_members: released_members, dependent_members: lockfile_ready_dependent_members, runner: runner, memo: memo)
1478
1509
  return if memo.any? && !memo.last.ok?
1479
1510
 
1511
+ append_dependency_floor_bundle_install_results(dependent_members: lockfile_ready_dependent_members, runner: runner, memo: memo)
1512
+ return if memo.any? && !memo.last.ok?
1513
+
1480
1514
  append_dependency_floor_ci_bundle_results(released_members: released_members, dependent_members: lockfile_ready_dependent_members, runner: runner, memo: memo)
1481
1515
  return if memo.any? && !memo.last.ok?
1482
1516
 
1483
- commit_dependency_floor_changes(dependent_members: floor_results.map(&:member_name), runner: runner, memo: memo) if floor_results.any? && execute && commit
1517
+ reconciled_members = (floor_results.map(&:member_name) + lockfile_ready_dependent_members.map(&:name)).uniq
1518
+ commit_dependency_floor_changes(dependent_members: reconciled_members, runner: runner, memo: memo) if reconciled_members.any? && execute && commit
1484
1519
  end
1485
1520
 
1486
1521
  def dependent_members_depending_on(released_members:, dependent_members:)
@@ -1528,6 +1563,25 @@ module Kettle
1528
1563
  end
1529
1564
  end
1530
1565
 
1566
+ # `bundle lock` deliberately updates only resolution metadata. Install the
1567
+ # resulting locked bundle before invoking the dependent's `bundle exec
1568
+ # kettle-release`, otherwise a just-published family gem can be absent
1569
+ # from the local RubyGems installation.
1570
+ def append_dependency_floor_bundle_install_results(dependent_members:, runner:, memo:)
1571
+ return unless execute && publish
1572
+ return if dependent_members.empty?
1573
+
1574
+ dependent_members.each do |member|
1575
+ memo << runner.call(
1576
+ member: member,
1577
+ phase: "dependency_floor_bundle_install",
1578
+ command: ["bundle", "install"],
1579
+ env: release_lockfile_env(member)
1580
+ )
1581
+ break unless memo.last.ok?
1582
+ end
1583
+ end
1584
+
1531
1585
  def wait_for_dependency_floor_lockfiles_result(member:, released_members:, runner:)
1532
1586
  result = nil
1533
1587
  REGISTRY_WAIT_ATTEMPTS.times do |index|
@@ -1811,7 +1865,7 @@ module Kettle
1811
1865
  "sh",
1812
1866
  "-lc",
1813
1867
  "files=$(git ls-files --modified --others --exclude-standard -- '*.gemspec' Gemfile.lock); " \
1814
- "if [ -n \"$files\" ]; then git add -- $files && git commit -m '⬆️ Raise family dependency floors'; fi"
1868
+ "if [ -n \"$files\" ]; then git add -- $files && git commit -m '⬆️ Reconcile family dependencies'; fi"
1815
1869
  ]
1816
1870
  )
1817
1871
  break unless memo.last.ok?
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.62
4
+ version: 1.2.63
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -74,7 +74,7 @@ dependencies:
74
74
  version: '1.0'
75
75
  - - ">="
76
76
  - !ruby/object:Gem::Version
77
- version: 1.0.3
77
+ version: 1.0.4
78
78
  type: :runtime
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
@@ -84,14 +84,14 @@ dependencies:
84
84
  version: '1.0'
85
85
  - - ">="
86
86
  - !ruby/object:Gem::Version
87
- version: 1.0.3
87
+ version: 1.0.4
88
88
  - !ruby/object:Gem::Dependency
89
89
  name: kettle-dev
90
90
  requirement: !ruby/object:Gem::Requirement
91
91
  requirements:
92
92
  - - ">="
93
93
  - !ruby/object:Gem::Version
94
- version: 3.0.13
94
+ version: 3.0.14
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.13
104
+ version: 3.0.14
105
105
  - - "<"
106
106
  - !ruby/object:Gem::Version
107
107
  version: 4.0.0
@@ -114,7 +114,7 @@ dependencies:
114
114
  version: '0.3'
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 0.3.13
117
+ version: 0.3.14
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
@@ -124,7 +124,7 @@ dependencies:
124
124
  version: '0.3'
125
125
  - - ">="
126
126
  - !ruby/object:Gem::Version
127
- version: 0.3.13
127
+ version: 0.3.14
128
128
  - !ruby/object:Gem::Dependency
129
129
  name: kettle-jem
130
130
  requirement: !ruby/object:Gem::Requirement
@@ -154,7 +154,7 @@ dependencies:
154
154
  version: '2.0'
155
155
  - - ">="
156
156
  - !ruby/object:Gem::Version
157
- version: 2.0.20
157
+ version: 2.0.21
158
158
  type: :runtime
159
159
  prerelease: false
160
160
  version_requirements: !ruby/object:Gem::Requirement
@@ -164,7 +164,7 @@ dependencies:
164
164
  version: '2.0'
165
165
  - - ">="
166
166
  - !ruby/object:Gem::Version
167
- version: 2.0.20
167
+ version: 2.0.21
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: tsort
170
170
  requirement: !ruby/object:Gem::Requirement
@@ -324,7 +324,7 @@ dependencies:
324
324
  version: '3.2'
325
325
  - - ">="
326
326
  - !ruby/object:Gem::Version
327
- version: 3.2.5
327
+ version: 3.2.6
328
328
  type: :development
329
329
  prerelease: false
330
330
  version_requirements: !ruby/object:Gem::Requirement
@@ -334,7 +334,7 @@ dependencies:
334
334
  version: '3.2'
335
335
  - - ">="
336
336
  - !ruby/object:Gem::Version
337
- version: 3.2.5
337
+ version: 3.2.6
338
338
  - !ruby/object:Gem::Dependency
339
339
  name: ruby-progressbar
340
340
  requirement: !ruby/object:Gem::Requirement
@@ -378,7 +378,7 @@ dependencies:
378
378
  version: '2.0'
379
379
  - - ">="
380
380
  - !ruby/object:Gem::Version
381
- version: 2.0.11
381
+ version: 2.0.12
382
382
  type: :development
383
383
  prerelease: false
384
384
  version_requirements: !ruby/object:Gem::Requirement
@@ -388,7 +388,7 @@ dependencies:
388
388
  version: '2.0'
389
389
  - - ">="
390
390
  - !ruby/object:Gem::Version
391
- version: 2.0.11
391
+ version: 2.0.12
392
392
  description: "\U0001F469‍\U0001F469‍\U0001F467‍\U0001F467 Kettle::Family provides
393
393
  scripts and conventions for coordinating related Ruby gems as one family."
394
394
  email:
@@ -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.62
445
- changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.62/CHANGELOG.md
444
+ source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.63
445
+ changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.63/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.62
447
+ documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.63
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