kettle-family 0.1.23 → 0.1.24

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: a8d9496889f9eea74318bc9144057335ea91b20a70790c3df49389d005318f81
4
- data.tar.gz: e0f95b680963632cb01a4a74bb277d6d83480454aa592a710667b20724b0ee9b
3
+ metadata.gz: 64a7d10673974c0f1e723d515d57aa56cb1525b127d64cc93a9652b692d1d90a
4
+ data.tar.gz: 9f372bfe5ef8546da4101652156e268edd571b31a88a2bbe14d1e308f6263783
5
5
  SHA512:
6
- metadata.gz: fa1985a40cf92448a466fb83714b6f6479e0dbf0edd488341c6f569c83e7a495ac8c9f9bb7a24dd0f039210007e04cb368148e75ab3db47f529f16bcca26ca77
7
- data.tar.gz: bee2060ce8c978bc82f2c761b4c2dc6fa2e52d8ec4e7e550ad41f77005f51d696f5e858e4d1bfd3682b113642329504469bc8fe1c7d1a8c51a181a596721adc4
6
+ metadata.gz: a39b986f3884a328c9668ed4730f8d832eeae1e1eb0ecff2a692aa9ec8b10c90dab13191764357555fe24fd97bd71e46952de12e0e17dd1a41e8a17d591c2932
7
+ data.tar.gz: 017010b6d3660e00d8e451240b923815ebf163a03fb43cdd676f2c95fb3a8e4825ee9fd584646ccbcf31fcb9f6d0f025f55f6f7b5657ebeedab5809add07bf86
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
+ ## [0.1.24] - 2026-06-27
34
+
35
+ - TAG: [v0.1.24][0.1.24t]
36
+ - COVERAGE: 95.07% -- 1831/1926 lines in 21 files
37
+ - BRANCH COVERAGE: 74.47% -- 627/842 branches in 21 files
38
+ - 38.60% documented
39
+
40
+ ### Fixed
41
+
42
+ - `kettle-family release --env NAME_LOCAL=/path` now allows release readiness
43
+ checks to use matching local source lockfile paths for recovery releases.
44
+ - Quiet template and release commands now unset Bundler/RubyGems debug
45
+ environment variables whose presence enables resolver/debug output.
46
+
33
47
  ## [0.1.23] - 2026-06-27
34
48
 
35
49
  - TAG: [v0.1.23][0.1.23t]
@@ -427,7 +441,9 @@ Please file a bug if you notice a violation of semantic versioning.
427
441
  - Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
428
442
  - Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
429
443
 
430
- [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v0.1.23...HEAD
444
+ [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v0.1.24...HEAD
445
+ [0.1.24]: https://github.com/kettle-dev/kettle-family/compare/v0.1.23...v0.1.24
446
+ [0.1.24t]: https://github.com/kettle-dev/kettle-family/releases/tag/v0.1.24
431
447
  [0.1.23]: https://github.com/kettle-dev/kettle-family/compare/v0.1.22...v0.1.23
432
448
  [0.1.23t]: https://github.com/kettle-dev/kettle-family/releases/tag/v0.1.23
433
449
  [0.1.22]: https://github.com/kettle-dev/kettle-family/compare/v0.1.21...v0.1.22
data/README.md CHANGED
@@ -571,7 +571,7 @@ Thanks for RTFM. ☺️
571
571
  [📌gitmoji]: https://gitmoji.dev
572
572
  [📌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
573
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
574
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-1.908-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
574
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-1.926-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
575
575
  [🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
576
576
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
577
577
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -292,7 +292,7 @@ module Kettle
292
292
  argv = normalize_command(command)
293
293
  return argv unless mise_configured?(member)
294
294
 
295
- injected_env = env.map { |key, value| "#{key}=#{value}" }
295
+ injected_env = env.flat_map { |key, value| value.nil? ? ["-u", key.to_s] : "#{key}=#{value}" }
296
296
  mise_argv = ["mise", "exec", "-C", member.root, "--"]
297
297
  return [*mise_argv, *argv] if injected_env.empty?
298
298
 
@@ -6,7 +6,7 @@ module Kettle
6
6
  module Family
7
7
  class GitStatus
8
8
  def self.dirty?(root)
9
- stdout, _stderr, status = Open3.capture3("git", "status", "--short", chdir: root)
9
+ stdout, _stderr, status = Open3.capture3("git", "status", "--short", :chdir => root)
10
10
  status.success? && !stdout.empty?
11
11
  end
12
12
  end
@@ -6,13 +6,14 @@ module Kettle
6
6
  REQUIRED_FILES = %w[Gemfile Rakefile README.md CHANGELOG.md LICENSE.md].freeze
7
7
  REQUIRED_BINS = %w[bin/rake bin/rspec].freeze
8
8
 
9
- def self.call(member:, config: nil)
10
- new(member: member, config: config).call
9
+ def self.call(member:, config: nil, allowed_local_path_roots: [])
10
+ new(member: member, config: config, allowed_local_path_roots: allowed_local_path_roots).call
11
11
  end
12
12
 
13
- def initialize(member:, config: nil)
13
+ def initialize(member:, config: nil, allowed_local_path_roots: [])
14
14
  @member = member
15
15
  @config = config
16
+ @allowed_local_path_roots = allowed_local_path_roots.filter_map { |path| normalized_path(path) }
16
17
  end
17
18
 
18
19
  def call
@@ -29,7 +30,7 @@ module Kettle
29
30
 
30
31
  private
31
32
 
32
- attr_reader :member, :config
33
+ attr_reader :member, :config, :allowed_local_path_roots
33
34
 
34
35
  def missing_required_files
35
36
  required_files.filter_map do |path|
@@ -100,11 +101,30 @@ module Kettle
100
101
 
101
102
  File.readlines(lockfile).filter_map.with_index(1) do |line, index|
102
103
  next unless line.start_with?(" remote: /", " remote: ./", " remote: ../")
104
+ next if allowed_local_path?(line)
103
105
 
104
106
  "release lockfile has local path remote at Gemfile.lock:#{index}"
105
107
  end
106
108
  end
107
109
 
110
+ def allowed_local_path?(line)
111
+ remote = line.split("remote:", 2).last.to_s.strip
112
+ remote_path = normalized_path(remote, base: member.root)
113
+ return false unless remote_path
114
+
115
+ allowed_local_path_roots.any? { |root| remote_path == root || remote_path.start_with?("#{root}/") }
116
+ end
117
+
118
+ def normalized_path(path, base: nil)
119
+ text = path.to_s
120
+ return nil if text.empty? || text.casecmp("false").zero?
121
+
122
+ expanded = File.expand_path(text, base)
123
+ File.realpath(expanded)
124
+ rescue Errno::ENOENT
125
+ expanded
126
+ end
127
+
108
128
  def required_files
109
129
  config ? config.check_required_files : REQUIRED_FILES
110
130
  end
@@ -3,7 +3,7 @@
3
3
  module Kettle
4
4
  module Family
5
5
  module Version
6
- VERSION = "0.1.23"
6
+ VERSION = "0.1.24"
7
7
  end
8
8
  VERSION = Version::VERSION # Traditional Constant Location
9
9
  end
@@ -27,12 +27,17 @@ module Kettle
27
27
  "KETTLE_JEM_DEBUG" => "false",
28
28
  "KETTLE_DEV_DEBUG" => "false",
29
29
  "SMORG_RB_DEBUG" => "false",
30
- "DEBUG" => "false",
30
+ "DEBUG" => nil,
31
31
  "BUNDLE_QUIET" => "true",
32
32
  "BUNDLE_DEBUG" => "false",
33
33
  "BUNDLER_DEBUG" => "false",
34
34
  "BUNDLE_VERBOSE" => "false",
35
- "DEBUG_RESOLVER" => "false",
35
+ "DEBUG_RESOLVER" => nil,
36
+ "DEBUG_RESOLVER_TREE" => nil,
37
+ "BUNDLER_DEBUG_RESOLVER" => nil,
38
+ "BUNDLER_DEBUG_RESOLVER_TREE" => nil,
39
+ "DEBUG_COMPACT_INDEX" => nil,
40
+ "MOLINILLO_DEBUG" => nil,
36
41
  "BUNDLE_SILENCE_DEPRECATIONS" => "true",
37
42
  "BUNDLE_SILENCE_ROOT_WARNING" => "true",
38
43
  "BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES" => "true"
@@ -405,7 +410,7 @@ module Kettle
405
410
  end
406
411
 
407
412
  def append_release_internal_checks(member:, memo:)
408
- memo << ReadinessCheck.call(member: member, config: config)
413
+ memo << ReadinessCheck.call(member: member, config: config, allowed_local_path_roots: release_allowed_local_path_roots)
409
414
  memo << ChangelogCheck.call(member: member, config: config) if memo.last.ok?
410
415
  end
411
416
 
@@ -679,6 +684,15 @@ module Kettle
679
684
  .merge(env_overrides)
680
685
  end
681
686
 
687
+ def release_allowed_local_path_roots
688
+ env_overrides.filter_map do |key, value|
689
+ next unless key.end_with?("_LOCAL", "_DEV")
690
+ next if value.to_s.empty? || value.to_s.casecmp("false").zero?
691
+
692
+ value
693
+ end
694
+ end
695
+
682
696
  def commit_normalized_lockfiles(branch_members:, runner:, memo:, reason: command)
683
697
  return unless commit
684
698
  return unless commit_normalized_lockfiles?(reason)
data.tar.gz.sig CHANGED
@@ -1,3 +1,2 @@
1
- �*�,kMsҾ��7*Rn{���lfN� ,� ]*32k���A��.K�܇|�c��<n�O (8���T�#ũӈ:t��2���}�?O
2
- HmL81m������w*y�7
3
- �c� A2�����c���[�6�4����w� �E=\,^��˴GȮō��7u��W 9�z�X_�iݭ<��ra��c_�&)�^O+���D���w&�B�T`Jr1K���a�MJ�Hbr����2�-�T�a�v_,�����G|����Ϝ��G�dT����t4?w�rYS�B�"Q�Ѝ���CH���M��r���R�^��Sƹ�ii��f
1
+ t�������z�m�^�mlx�N]dT�,n�;��(C}��au����q74�����ϩ%���Swh�.�c���R�6t��ְ�)�8�Xc(��L.�qX��F�?t�a�(I����� k���O-H�
2
+ �ȉ�xt���G��Њ:� }Jg��lZ#�e�!��F������9����?>�Cāe{~��e�sT.xzF��=�<p�:�[� M�y*1Kd/��XH=J���F�����&R��oӅ"�}�؎��0}��^˄�GD���dU%:?�����J&E�Dn]x.HSb�-��ޅ� �L�@4L�EÖt��ȍ�}��{|)��m3��^�G�s=����0����e��vC��d�0�i�y��
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.23
4
+ version: 0.1.24
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.23
314
- changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v0.1.23/CHANGELOG.md
313
+ source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v0.1.24
314
+ changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v0.1.24/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.23
316
+ documentation_uri: https://www.rubydoc.info/gems/kettle-family/0.1.24
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