kettle-family 1.2.93 → 1.2.94
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 +6 -3
- data/CHANGELOG.md +16 -1
- data/README.md +21 -11
- data/lib/kettle/family/config.rb +19 -2
- data/lib/kettle/family/version.rb +1 -1
- data/lib/kettle/family/workflow.rb +30 -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: 60682b3f2d2f1017624cc67b428ff954b71f03eca4fdb6034cbe229183cba970
|
|
4
|
+
data.tar.gz: ea873857902fa44d2b2051e6449f21d84515139f005e1a9c148dfedf5062ce2f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a14c847688ce762dbf03be0229b1c5ac0da23d3892e2e803467b8dc6efe73df4ede2b43d64a6ffedbccaf38f11da162bfad6bbf574a44b29739dafe8b8d70cba
|
|
7
|
+
data.tar.gz: 8ad7d29e783dace84ef807339b81907fe9e6e7c7f35ee60c4ac95b412a0972983c6eb7d9e8dad708801b270eda6ee0bb87d8759a22e3d4e29d6f254d4bfa6ff3
|
checksums.yaml.gz.sig
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
y;�"Ĕs$�5�U[G*W8M�}q?�x���eI��ݞaWf��<.�ePF��`���9@�
|
|
2
|
+
A��~ON��3��1��ݎ��[�#z
|
|
3
|
+
�Ѫ�N�#F�a��[�D�Ͽ���ҷHj��鼊c�/���{��������ʇ��p��
|
|
4
|
+
�{���>pp�L۹F|�^ҡ8��QS"����ch�m<�=Pn�P�qK
|
|
5
|
+
I�j��97���H ��f�V*�<�zۗ��H�>���f�.���rFi�c�e��6� ����MM�?�s��c������|���l}�����"���q1K�����j/Cx�8<0F�3$��6��"ā���{�md�Kǩ֫�¡!�8lr;
|
|
6
|
+
��ƿ�H4cXKXF5�[;@�v@Oz�
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,19 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [1.2.94] - 2026-09-07
|
|
34
|
+
|
|
35
|
+
- TAG: [v1.2.94][1.2.94t]
|
|
36
|
+
- COVERAGE: 93.50% -- 6183/6613 lines in 35 files
|
|
37
|
+
- BRANCH COVERAGE: 78.04% -- 2512/3219 branches in 35 files
|
|
38
|
+
- 32.58% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Restrict inferred monorepo release path allowances to CI-resident paths, preserving external development overrides for local-only dependency work.
|
|
43
|
+
|
|
44
|
+
- Allow bup and bupb to commit explicitly selected development path graphs while continuing to reject unrequested local lockfile paths.
|
|
45
|
+
|
|
33
46
|
## [1.2.93] - 2026-09-07
|
|
34
47
|
|
|
35
48
|
- TAG: [v1.2.93][1.2.93t]
|
|
@@ -2627,7 +2640,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
2627
2640
|
- Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
|
|
2628
2641
|
- Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
|
|
2629
2642
|
|
|
2630
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.
|
|
2643
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.94...HEAD
|
|
2644
|
+
[1.2.94]: https://github.com/kettle-dev/kettle-family/compare/v1.2.93...v1.2.94
|
|
2645
|
+
[1.2.94t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.94
|
|
2631
2646
|
[1.2.93]: https://github.com/kettle-dev/kettle-family/compare/v1.2.92...v1.2.93
|
|
2632
2647
|
[1.2.93t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.93
|
|
2633
2648
|
[1.2.92]: https://github.com/kettle-dev/kettle-family/compare/v1.2.91...v1.2.92
|
data/README.md
CHANGED
|
@@ -255,13 +255,19 @@ release:
|
|
|
255
255
|
- kettle-jem
|
|
256
256
|
```
|
|
257
257
|
|
|
258
|
-
`family.local_path_env` names the environment variable that activates
|
|
259
|
-
path
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
that
|
|
263
|
-
|
|
264
|
-
|
|
258
|
+
`family.local_path_env` names the environment variable that activates the
|
|
259
|
+
family's development path graph. It does not, by itself, make a path valid in
|
|
260
|
+
CI or safe to retain in a release lockfile. For an explicitly configured
|
|
261
|
+
`family.mode: monorepo`, `kettle-family` derives a release-lock policy only
|
|
262
|
+
when that path is contained by the family repository; this is the case when
|
|
263
|
+
the CI checkout contains the same member graph. The tracked `Gemfile.lock`
|
|
264
|
+
may then retain those member `PATH` sources.
|
|
265
|
+
|
|
266
|
+
A monorepo can also reference a separate checkout, for example a shared base
|
|
267
|
+
gem in its parent workspace. That is an external development override, not an
|
|
268
|
+
internal monorepo path: it is removed for release unless
|
|
269
|
+
`release.allowed_local_path_roots` and `release.allowed_local_path_env`
|
|
270
|
+
explicitly describe matching CI checkout provisioning.
|
|
265
271
|
|
|
266
272
|
Sibling-repository families do not receive this exception. Their canonical
|
|
267
273
|
lockfiles must use released dependencies: a local Kettle Dev workspace, or
|
|
@@ -607,9 +613,13 @@ family-root lockfile is also validated and committed for monorepos, where the
|
|
|
607
613
|
root and members share one Git repository. A sibling-repository family root is
|
|
608
614
|
updated for its orchestration bundle but is not included in any member commit.
|
|
609
615
|
Use `--no-commit` for a working-tree-only refresh, or `--commit` to state the
|
|
610
|
-
default explicitly.
|
|
611
|
-
|
|
612
|
-
|
|
616
|
+
default explicitly. `bup` and `bupb` validate the development graph selected
|
|
617
|
+
by their explicit local-path environment and commit it by default; this keeps
|
|
618
|
+
template synchronization from being blocked by expected local-path lockfile
|
|
619
|
+
changes. Release workflows separately normalize and validate their
|
|
620
|
+
CI/release graph. A normal family-local graph and an unreleased external
|
|
621
|
+
Kettle toolchain are separate choices; project task wrappers should not
|
|
622
|
+
silently enable the latter for ordinary `bup` or `bupb` runs.
|
|
613
623
|
|
|
614
624
|
Plan or update GitHub Actions workflow SHA pins across the selected family
|
|
615
625
|
members:
|
|
@@ -1144,7 +1154,7 @@ Thanks for RTFM. ☺️
|
|
|
1144
1154
|
[📌gitmoji]: https://gitmoji.dev
|
|
1145
1155
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
1146
1156
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
1147
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-6.
|
|
1157
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-6.613-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
1148
1158
|
[🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
|
|
1149
1159
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
1150
1160
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
data/lib/kettle/family/config.rb
CHANGED
|
@@ -285,18 +285,29 @@ module Kettle
|
|
|
285
285
|
end
|
|
286
286
|
|
|
287
287
|
def release_allowed_local_path_roots
|
|
288
|
-
inferred =
|
|
288
|
+
inferred = ci_resident_monorepo_local_path_graph? ? [family_local_path_root] : []
|
|
289
289
|
configured = Array(fetch_path("release", "allowed_local_path_roots"))
|
|
290
290
|
.map { |path| expand_config_relative_path(path) }
|
|
291
291
|
(inferred + configured).uniq
|
|
292
292
|
end
|
|
293
293
|
|
|
294
294
|
def release_allowed_local_path_env_names
|
|
295
|
-
inferred =
|
|
295
|
+
inferred = ci_resident_monorepo_local_path_graph? ? [family_local_path_env_name] : []
|
|
296
296
|
configured = Array(fetch_path("release", "allowed_local_path_env"))
|
|
297
297
|
(inferred + configured).compact.map(&:to_s).reject(&:empty?).uniq
|
|
298
298
|
end
|
|
299
299
|
|
|
300
|
+
# A monorepo may still use an environment switch to reach a separate
|
|
301
|
+
# sibling checkout. Only a path contained by this repository can be
|
|
302
|
+
# inferred as CI-resident and retained in release lockfiles.
|
|
303
|
+
def ci_resident_monorepo_local_path_graph?
|
|
304
|
+
return false unless fetch_path("family", "mode") == "monorepo"
|
|
305
|
+
|
|
306
|
+
path_within_root?(family_local_path_root)
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
# This remains the repository-topology predicate used by release
|
|
310
|
+
# scheduling. CI-safe local path inference is deliberately narrower.
|
|
300
311
|
def configured_monorepo_release?
|
|
301
312
|
fetch_path("family", "mode") == "monorepo"
|
|
302
313
|
end
|
|
@@ -371,6 +382,12 @@ module Kettle
|
|
|
371
382
|
|
|
372
383
|
private
|
|
373
384
|
|
|
385
|
+
def path_within_root?(path)
|
|
386
|
+
expanded_path = File.expand_path(path)
|
|
387
|
+
expanded_root = File.expand_path(root)
|
|
388
|
+
expanded_path == expanded_root || expanded_path.start_with?("#{expanded_root}/")
|
|
389
|
+
end
|
|
390
|
+
|
|
374
391
|
def expand_config_relative_path(value)
|
|
375
392
|
text = value.to_s
|
|
376
393
|
return text if text.start_with?("/")
|
|
@@ -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.94"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
|
@@ -5580,7 +5580,7 @@ module Kettle
|
|
|
5580
5580
|
"",
|
|
5581
5581
|
0.0,
|
|
5582
5582
|
false,
|
|
5583
|
-
diagnostics.empty? ? nil : "bundle update produced
|
|
5583
|
+
diagnostics.empty? ? nil : "bundle update produced an unexpected local-path lockfile"
|
|
5584
5584
|
)
|
|
5585
5585
|
memo << result
|
|
5586
5586
|
result.ok?
|
|
@@ -5606,8 +5606,35 @@ module Kettle
|
|
|
5606
5606
|
ReadinessCheck.call(
|
|
5607
5607
|
member: member,
|
|
5608
5608
|
config: config,
|
|
5609
|
-
allowed_local_path_roots:
|
|
5610
|
-
).stdout.lines.grep(/^release lockfile has local path remote at /).map
|
|
5609
|
+
allowed_local_path_roots: bundle_update_allowed_local_path_roots
|
|
5610
|
+
).stdout.lines.grep(/^release lockfile has local path remote at /).map do |line|
|
|
5611
|
+
line.sub("release lockfile", "bundle update lockfile").chomp
|
|
5612
|
+
end
|
|
5613
|
+
end
|
|
5614
|
+
|
|
5615
|
+
# Bundle updates record the graph intentionally selected by the caller.
|
|
5616
|
+
# Release validation remains stricter: it accepts only CI-resident paths.
|
|
5617
|
+
def bundle_update_allowed_local_path_roots
|
|
5618
|
+
explicit = explicit_local_path_env_overrides
|
|
5619
|
+
roots = release_allowed_local_path_roots.dup
|
|
5620
|
+
family_env_name = config.family_local_path_env_name
|
|
5621
|
+
|
|
5622
|
+
explicit.each do |name, value|
|
|
5623
|
+
next unless local_path_env_value?(value)
|
|
5624
|
+
|
|
5625
|
+
if name == family_env_name
|
|
5626
|
+
roots << config.family_local_path_root
|
|
5627
|
+
elsif explicit_local_path_root?(value)
|
|
5628
|
+
roots << File.expand_path(value, config.root)
|
|
5629
|
+
end
|
|
5630
|
+
end
|
|
5631
|
+
|
|
5632
|
+
roots.uniq
|
|
5633
|
+
end
|
|
5634
|
+
|
|
5635
|
+
def explicit_local_path_root?(value)
|
|
5636
|
+
text = value.to_s.strip
|
|
5637
|
+
!%w[true yes 1 on enabled].include?(text.downcase)
|
|
5611
5638
|
end
|
|
5612
5639
|
|
|
5613
5640
|
def commit_bex_changes(member:, runner:, memo:)
|
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.94
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -443,10 +443,10 @@ licenses:
|
|
|
443
443
|
- AGPL-3.0-only
|
|
444
444
|
metadata:
|
|
445
445
|
homepage_uri: https://kettle-family.galtzo.com
|
|
446
|
-
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.
|
|
447
|
-
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.
|
|
446
|
+
source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.94
|
|
447
|
+
changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.94/CHANGELOG.md
|
|
448
448
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
|
|
449
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.
|
|
449
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.94
|
|
450
450
|
funding_uri: https://github.com/sponsors/pboling
|
|
451
451
|
wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
|
|
452
452
|
news_uri: https://www.railsbling.com/tags/kettle-family
|
metadata.gz.sig
CHANGED
|
Binary file
|