kettle-family 1.2.0 → 1.2.2

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: aefb679d0cc2bdabed07ed294dfe6a270a2c8739bcb11b80c1eb1a367a8c72c9
4
- data.tar.gz: c77c800317e98d86444d28ef032956d57dcfa187cb79a39b622ef266502a5a34
3
+ metadata.gz: ddcf479118174c5d73c7e38cb2302228892c6839d03f92470f9c10dd6709ec02
4
+ data.tar.gz: 0ad307c778e0f8d5b717a65fdc4bc9c37c335c9c209a31666b5749dc1405b870
5
5
  SHA512:
6
- metadata.gz: 77f54999801132c906f45e29b377c088e6459fa4103649a06f4e1679fee57ffa99f43c38d5af5af9dae12c9352ef027e896775c897ba077a28057122f700aa5f
7
- data.tar.gz: a213bee6bf3d05686cfe38957c47a8554190283b944037532426097a1d23285c5132a9aef20f71637305aba02421d9761ac5ae0605f8fcd59d43418d673150e8
6
+ metadata.gz: 3f2342cbfa65d51517bbb7325a743e7b48f40b1c8af410685f61ec0e9e76c747576d8454070835127db94217454372a8ad2c6dbddb48ca21740aab62a6e36290
7
+ data.tar.gz: 289dd394d9566713f7bc6b1718b944344d353c92b2377bfc588b0045453b1ee3f0af693b75129636d2bfd0cee17585afaeaef2076bb20284b5e7e7dac309123e
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,34 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [1.2.2] - 2026-07-28
34
+
35
+ - TAG: [v1.2.2][1.2.2t]
36
+ - COVERAGE: 93.87% -- 3569/3802 lines in 27 files
37
+ - BRANCH COVERAGE: 76.29% -- 1345/1763 branches in 27 files
38
+ - 28.10% documented
39
+
40
+ ### Fixed
41
+
42
+ - `kettle-family template` now runs the `kettle-jem prepare` phase through the
43
+ same member bundle shape as `kettle-jem install`, so local template-stack
44
+ overrides are honored during preparation.
45
+ - Failed template preparation event streams are now summarized instead of being
46
+ dumped raw into the final text report.
47
+
48
+ ## [1.2.1] - 2026-07-28
49
+
50
+ - TAG: [v1.2.1][1.2.1t]
51
+ - COVERAGE: 93.86% -- 3561/3794 lines in 27 files
52
+ - BRANCH COVERAGE: 76.24% -- 1341/1759 branches in 27 files
53
+ - 28.10% documented
54
+
55
+ ### Fixed
56
+
57
+ - `kettle-family reset Gemfile.lock` now launches `kettle-reset` outside each
58
+ member bundle, so it can repair lockfiles that reference uninstalled
59
+ unreleased dependency versions.
60
+
33
61
  ## [1.2.0] - 2026-07-27
34
62
 
35
63
  - TAG: [v1.2.0][1.2.0t]
@@ -1163,7 +1191,11 @@ Please file a bug if you notice a violation of semantic versioning.
1163
1191
  - Fixed CI load failures on engines without compatible `pty` support by falling back to Open3 for interactive release commands.
1164
1192
  - Fixed Ruby 3.2 version-bump support by loading Prism lazily and wiring the Prism gem only for MRI versions that need it.
1165
1193
 
1166
- [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.0...HEAD
1194
+ [Unreleased]: https://github.com/kettle-dev/kettle-family/compare/v1.2.2...HEAD
1195
+ [1.2.2]: https://github.com/kettle-dev/kettle-family/compare/v1.2.1...v1.2.2
1196
+ [1.2.2t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.2
1197
+ [1.2.1]: https://github.com/kettle-dev/kettle-family/compare/v1.2.0...v1.2.1
1198
+ [1.2.1t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.1
1167
1199
  [1.2.0]: https://github.com/kettle-dev/kettle-family/compare/v1.1.9...v1.2.0
1168
1200
  [1.2.0t]: https://github.com/kettle-dev/kettle-family/releases/tag/v1.2.0
1169
1201
  [1.1.9]: https://github.com/kettle-dev/kettle-family/compare/v1.1.8...v1.1.9
data/README.md CHANGED
@@ -457,9 +457,12 @@ kettle-family reset Gemfile.lock
457
457
  kettle-family reset Gemfile.lock --execute
458
458
  ```
459
459
 
460
- `reset Gemfile.lock` runs each member's `bundle exec kettle-reset release-lockfiles`
461
- with configured, inferred, and path-like local `*_DEV`/`*_LOCAL` environment
462
- variables disabled. The member-level reset rewrites local sibling paths and
460
+ `reset Gemfile.lock` runs each member's `kettle-reset release-lockfiles`
461
+ through an unbundled `bundler/inline` helper, with configured, inferred, and
462
+ path-like local `*_DEV`/`*_LOCAL` environment variables disabled. The helper
463
+ declares its own `kettle-dev` dependency from `https://gem.coop`, so reset can
464
+ repair a member even when its current lockfile is too broken for `bundle exec`
465
+ to materialize. The member-level reset rewrites local sibling paths and
463
466
  checksum-less local gem versions back to released registry versions with
464
467
  `sha256=` checksums in `Gemfile.lock` and `Appraisal.root.gemfile.lock`.
465
468
  Executed family resets fail if the resulting lockfiles still contain sibling
@@ -810,7 +813,7 @@ Thanks for RTFM. ☺️
810
813
  [📌gitmoji]: https://gitmoji.dev
811
814
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
812
815
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
813
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-3.790-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
816
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-3.802-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
814
817
  [🔐security]: https://github.com/kettle-dev/kettle-family/blob/main/SECURITY.md
815
818
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
816
819
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -193,7 +193,7 @@ module Kettle
193
193
  end
194
194
 
195
195
  def template_event_stdout?(result)
196
- command == "template" && result.phase == "template" && template_events(result.stdout).any?
196
+ command == "template" && template_events(result.stdout).any?
197
197
  end
198
198
 
199
199
  def release_event_stdout?(result)
@@ -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.0"
8
+ VERSION = "1.2.2"
9
9
  end
10
10
  # Current gem version exposed at the traditional constant location.
11
11
  VERSION = Version::VERSION # Traditional Constant Location
@@ -5,6 +5,7 @@ require "json"
5
5
  require "net/http"
6
6
  require "etc"
7
7
  require "open3"
8
+ require "rbconfig"
8
9
  require "shellwords"
9
10
  require "uri"
10
11
  require "yaml"
@@ -77,6 +78,23 @@ module Kettle
77
78
  "BUNDLE_SILENCE_ROOT_WARNING" => "true",
78
79
  "BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES" => "true"
79
80
  }.freeze
81
+ RESET_LOCKFILE_HELPER = <<~RUBY
82
+ require "bundler/inline"
83
+
84
+ source_url = ENV.fetch("KETTLE_FAMILY_RESET_GEM_SOURCE", "https://gem.coop")
85
+ kettle_dev_version = ENV["KETTLE_FAMILY_RESET_KETTLE_DEV_VERSION"].to_s
86
+
87
+ gemfile(true) do
88
+ source source_url
89
+ if kettle_dev_version.empty?
90
+ gem "kettle-dev"
91
+ else
92
+ gem "kettle-dev", kettle_dev_version
93
+ end
94
+ end
95
+
96
+ load Gem.bin_path("kettle-dev", "kettle-reset")
97
+ RUBY
80
98
  REGISTRY_WAIT_ATTEMPTS = 15
81
99
  REGISTRY_WAIT_INTERVAL_SECONDS = 15
82
100
 
@@ -712,7 +730,27 @@ module Kettle
712
730
  end
713
731
 
714
732
  def reset_gemfile_lock_command(member)
715
- ["bundle", "exec", "kettle-reset", "release-lockfiles"]
733
+ [
734
+ "env",
735
+ "-u",
736
+ "BUNDLE_BIN_PATH",
737
+ "-u",
738
+ "BUNDLE_FROZEN",
739
+ "-u",
740
+ "BUNDLE_GEMFILE",
741
+ "-u",
742
+ "BUNDLER_VERSION",
743
+ "-u",
744
+ "RUBYOPT",
745
+ reset_helper_ruby,
746
+ "-e",
747
+ RESET_LOCKFILE_HELPER,
748
+ "release-lockfiles"
749
+ ]
750
+ end
751
+
752
+ def reset_helper_ruby
753
+ env_overrides["KETTLE_FAMILY_RESET_RUBY"].to_s.empty? ? RbConfig.ruby : env_overrides["KETTLE_FAMILY_RESET_RUBY"].to_s
716
754
  end
717
755
 
718
756
  def validate_reset_gemfile_lock(member:, memo:)
@@ -1267,11 +1305,24 @@ module Kettle
1267
1305
  end
1268
1306
 
1269
1307
  def template_prepare_command(member)
1270
- command_text = "kettle-jem prepare"
1308
+ command_text = template_prepare_command_from(config.template_command || default_template_command(member))
1271
1309
  command_text = append_template_family_args(command_text)
1272
1310
  append_template_skip_commit(command_text)
1273
1311
  end
1274
1312
 
1313
+ def template_prepare_command_from(command_text)
1314
+ if command_text.is_a?(Array)
1315
+ argv = command_text.map(&:to_s)
1316
+ index = argv.index("install")
1317
+ return argv unless index
1318
+
1319
+ argv[index] = "prepare"
1320
+ argv
1321
+ else
1322
+ command_text.to_s.sub(/\bkettle-jem\s+install\b/, "kettle-jem prepare")
1323
+ end
1324
+ end
1325
+
1275
1326
  def append_template_skip_commit(command_text)
1276
1327
  return command_text if commit
1277
1328
  return command_text if command_text.is_a?(Array) && command_text.include?("--skip-commit")
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.0
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -341,10 +341,10 @@ licenses:
341
341
  - AGPL-3.0-only
342
342
  metadata:
343
343
  homepage_uri: https://kettle-family.galtzo.com
344
- source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.0
345
- changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.0/CHANGELOG.md
344
+ source_code_uri: https://github.com/kettle-dev/kettle-family/tree/v1.2.2
345
+ changelog_uri: https://github.com/kettle-dev/kettle-family/blob/v1.2.2/CHANGELOG.md
346
346
  bug_tracker_uri: https://github.com/kettle-dev/kettle-family/issues
347
- documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.0
347
+ documentation_uri: https://www.rubydoc.info/gems/kettle-family/1.2.2
348
348
  funding_uri: https://github.com/sponsors/pboling
349
349
  wiki_uri: https://github.com/kettle-dev/kettle-family/wiki
350
350
  news_uri: https://www.railsbling.com/tags/kettle-family
metadata.gz.sig CHANGED
Binary file