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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +14 -1
- data/README.md +1 -1
- data/lib/kettle/family/version.rb +1 -1
- data/lib/kettle/family/workflow.rb +67 -3
- data.tar.gz.sig +0 -0
- metadata +4 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8c61cfdc32555584613be9cc40abc3f43596619d6dcaa50296c7c2d0a5a91cdd
|
|
4
|
+
data.tar.gz: f7430c5af93088a425052e2f387a11bd84e43ba861ec417bf12bd26f14a4da7e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
|
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.
|
|
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.
|
|
445
|
-
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.
|
|
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.
|
|
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
|