kettle-family 1.2.70 → 1.2.71

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: c2288af511fb1a4739aaa21048c246fc943f37121fade2508036d3ab99118a23
4
- data.tar.gz: dd96a3071d396abca33e2dc05747ed84d5b4071833e6397d18262e7b67a8ac8e
3
+ metadata.gz: 8c61cfdc32555584613be9cc40abc3f43596619d6dcaa50296c7c2d0a5a91cdd
4
+ data.tar.gz: f7430c5af93088a425052e2f387a11bd84e43ba861ec417bf12bd26f14a4da7e
5
5
  SHA512:
6
- metadata.gz: 55c143def3d82260a48d92eb2a790d451b0870639f0824b8995acbf066111b5fb43f9522fb94d7a79de4fccc64f4a786fdd553621512316f0b51ffe81ed6f49c
7
- data.tar.gz: e405c86386fd311f126a473fd7c2410626f1763ae739892c923fd03ea69a8bbff9251e6cb9f08504a3ad0189ec4b50d43b67cf74b5ecd3689fea6614ad15a086
6
+ metadata.gz: 59b42741cd514d00252fdc0e3dec6c8c761d7151b977282b8f028ef29ff41b190564d2e4cd9527efc4eaf22790a35abf865dabc31635fd25b66481587be2afd5
7
+ data.tar.gz: 86a21caf729f0a1bc47eac1b46953c17842e83b05d52ff60ada1018b3b3727e0aa1f7adae8be30d46aeaf1d7e3515ef5c62e008ed38aa724e5410fe143c14449
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.71] - 2026-08-30
34
+
35
+ - TAG: [v1.2.71][1.2.71t]
36
+ - COVERAGE: 93.30% -- 5544/5942 lines in 33 files
37
+ - BRANCH COVERAGE: 76.62% -- 2281/2977 branches in 33 files
38
+ - 30.50% documented
39
+
40
+ ### Fixed
41
+
42
+ - Preserve explicitly enabled monorepo template dependency graphs while reconciling release lockfiles.
43
+
33
44
  ## [1.2.70] - 2026-08-30
34
45
 
35
46
  - TAG: [v1.2.70][1.2.70t]
@@ -2346,7 +2357,9 @@ Please file a bug if you notice a violation of semantic versioning.
2346
2357
  - Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
2347
2358
  - Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
2348
2359
 
2349
- [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.70...HEAD
2360
+ [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.71...HEAD
2361
+ [1.2.71]: https://github.com/kettle-dev/kettle-family/compare/v1.2.70...v1.2.71
2362
+ [1.2.71t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.71
2350
2363
  [1.2.70]: https://github.com/kettle-dev/kettle-family/compare/v1.2.69...v1.2.70
2351
2364
  [1.2.70t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.70
2352
2365
  [1.2.69]: https://github.com/kettle-dev/kettle-family/compare/v1.2.68...v1.2.69
data/README.md CHANGED
@@ -1049,7 +1049,7 @@ Thanks for RTFM. ☺️
1049
1049
  [📌gitmoji]: https://gitmoji.dev
1050
1050
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
1051
1051
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
1052
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-5.902-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1052
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-5.942-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1053
1053
  [🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
1054
1054
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
1055
1055
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -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.70"
8
+ VERSION = "1.2.71"
9
9
  end
10
10
  # Current gem version exposed at the traditional constant location.
11
11
  VERSION = Version::VERSION # Traditional Constant Location
@@ -1761,11 +1761,16 @@ module Kettle
1761
1761
  return ["Gemfile.lock was not created by dependency floor lockfile refresh"] unless File.file?(lockfile)
1762
1762
 
1763
1763
  lockfile_source = File.read(lockfile)
1764
- diagnostics = Kettle::Dev::LockfileReset.local_path_remote_lines_from_source(lockfile_source).map do |line_number|
1764
+ allowed_path_gems = dependency_floor_allowed_path_gems(member: member, lockfile_source: lockfile_source)
1765
+ diagnostics = Kettle::Dev::LockfileReset.local_path_remote_lines_from_source(lockfile_source).reject do |line_number|
1766
+ dependency_floor_allowed_path_remote?(member: member, lockfile_source: lockfile_source, line_number: line_number)
1767
+ end.map do |line_number|
1765
1768
  "Gemfile.lock has local path remote at line #{line_number}"
1766
1769
  end
1767
1770
  checksum_entries = Kettle::Dev::LockfileReset.checksum_entries_from_source(lockfile_source) || {}
1768
1771
  diagnostics.concat(released_members.filter_map do |released_member|
1772
+ next if allowed_path_gems.include?(released_member.name)
1773
+
1769
1774
  checksum = checksum_entries[[released_member.name, released_member.version]]
1770
1775
  if checksum.nil?
1771
1776
  "Gemfile.lock CHECKSUMS is missing #{released_member.name} #{released_member.version}"
@@ -1776,6 +1781,48 @@ module Kettle
1776
1781
  diagnostics
1777
1782
  end
1778
1783
 
1784
+ def dependency_floor_allowed_path_remote?(member:, lockfile_source:, line_number:)
1785
+ remote = lockfile_source.each_line.with_index(1).find { |_line, index| index == line_number }.first
1786
+ .to_s.split("remote:", 2).last.to_s.strip
1787
+ remote_path = File.expand_path(remote, member.root)
1788
+ release_allowed_local_path_roots.any? do |root|
1789
+ remote_path == root || remote_path.start_with?("#{root}/")
1790
+ end
1791
+ end
1792
+
1793
+ def dependency_floor_allowed_path_gems(member:, lockfile_source:)
1794
+ in_path = false
1795
+ in_specs = false
1796
+ allowed_remote = false
1797
+ lockfile_source.each_line.each_with_object(Set.new) do |line, gems|
1798
+ stripped = line.strip
1799
+ if stripped.match?(/\A[A-Z][A-Z ]*\z/)
1800
+ in_path = stripped == "PATH"
1801
+ in_specs = false
1802
+ allowed_remote = false
1803
+ next
1804
+ end
1805
+ next unless in_path
1806
+
1807
+ if stripped.start_with?("remote:")
1808
+ remote = stripped.split("remote:", 2).last.to_s.strip
1809
+ remote_path = File.expand_path(remote, member.root)
1810
+ allowed_remote = release_allowed_local_path_roots.any? do |root|
1811
+ remote_path == root || remote_path.start_with?("#{root}/")
1812
+ end
1813
+ next
1814
+ end
1815
+ if stripped == "specs:"
1816
+ in_specs = true
1817
+ next
1818
+ end
1819
+ next unless allowed_remote && in_specs && line.start_with?(" ") && !line.start_with?(" ")
1820
+
1821
+ name = stripped.split(" (", 2).first
1822
+ gems << name unless name.empty?
1823
+ end
1824
+ end
1825
+
1779
1826
  def dependency_floor_lockfile_command(released_members)
1780
1827
  ["bundle", "lock", "--update", *released_members.map(&:name), "--add-checksums"]
1781
1828
  end
@@ -4130,7 +4177,9 @@ module Kettle
4130
4177
  end
4131
4178
 
4132
4179
  def release_allowed_local_path_env_names
4133
- config.release_allowed_local_path_env_names
4180
+ names = config.release_allowed_local_path_env_names
4181
+ names << "K_JEM_TEMPLATING" if preserve_monorepo_template_context?
4182
+ names.uniq
4134
4183
  end
4135
4184
 
4136
4185
  def release_local_path_policy_env
@@ -4146,6 +4195,7 @@ module Kettle
4146
4195
 
4147
4196
  def release_lockfile_local_path_env_overrides(member = nil)
4148
4197
  explicit = config.release_disable_local_path_env.to_h { |key| [key.to_s, "false"] }
4198
+ explicit.delete("K_JEM_TEMPLATING") if preserve_monorepo_template_context?
4149
4199
  derived = release_local_path_env_detection_sources.each_with_object({}) do |(key, value), memo|
4150
4200
  key = key.to_s
4151
4201
  next unless key.end_with?("_LOCAL", "_DEV")
@@ -4155,7 +4205,21 @@ module Kettle
4155
4205
  memo[key] = "false"
4156
4206
  end
4157
4207
  inferred = member ? release_lockfile_inferred_local_path_env(member).to_h { |key| [key, "false"] } : {}
4158
- explicit.merge(derived).merge(inferred).merge(release_member_local_path_env(member))
4208
+ explicit
4209
+ .merge(derived)
4210
+ .merge(inferred)
4211
+ .merge(release_member_local_path_env(member))
4212
+ .merge(preserve_monorepo_template_context? ? {"K_JEM_TEMPLATING" => "true"} : {})
4213
+ end
4214
+
4215
+ # K_JEM_TEMPLATING activates the generated monorepo dependency closure;
4216
+ # it is not an unrelated local checkout switch. Preserve it only when
4217
+ # the caller explicitly enabled it for a configured monorepo release.
4218
+ def preserve_monorepo_template_context?
4219
+ return false unless config.configured_monorepo_release?
4220
+
4221
+ value = release_local_path_env_sources["K_JEM_TEMPLATING"].to_s.strip.downcase
4222
+ %w[true yes 1 on].include?(value)
4159
4223
  end
4160
4224
 
4161
4225
  def release_member_local_path_env(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.70
4
+ version: 1.2.71
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -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.70
445
- changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.70/CHANGELOG.md
444
+ source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.71
445
+ changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.71/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.70
447
+ documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.71
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