kettle-dev 3.0.30 → 3.0.32
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 +29 -1
- data/README.md +1 -1
- data/lib/kettle/dev/lockfile_reset.rb +25 -6
- data/lib/kettle/dev/rakelib/appraisal.rake +1 -1
- data/lib/kettle/dev/release_cli.rb +34 -1
- data/lib/kettle/dev/version.rb +1 -1
- 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: 9132d12950e549b34487cfee3dfdbe7fc3e3fc8d09c61e5c469200ebcfd33494
|
|
4
|
+
data.tar.gz: bc7028945556631f6580263cb484e2fe355eb183230b26858622efd5e72c2684
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 54f36d581d481382e2916eede84a4445eb89505f87021e422efec8ff7fe1a185059d06e451f1332717a8cd6ccdfb4dd8e4ba22de77ce6b20af4895cbd2d93ca4
|
|
7
|
+
data.tar.gz: c25ead2234bda685bb6c3e6d4f3a3af33a673788705744a3efd69a866e7d9027034ce1cb6e6775fd63f240455593a2c2b505548331a73fd4ed5148b7de2ad736
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,30 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [3.0.32] - 2026-09-07
|
|
34
|
+
|
|
35
|
+
- TAG: [v3.0.32][3.0.32t]
|
|
36
|
+
- COVERAGE: 91.83% -- 6067/6607 lines in 47 files
|
|
37
|
+
- BRANCH COVERAGE: 76.38% -- 2318/3035 branches in 47 files
|
|
38
|
+
- 50.35% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Preserve active local dependency selectors while generating Appraisal files during family templating.
|
|
43
|
+
|
|
44
|
+
## [3.0.31] - 2026-09-06
|
|
45
|
+
|
|
46
|
+
- TAG: [v3.0.31][3.0.31t]
|
|
47
|
+
- COVERAGE: 91.85% -- 6060/6598 lines in 47 files
|
|
48
|
+
- BRANCH COVERAGE: 76.33% -- 2315/3033 branches in 47 files
|
|
49
|
+
- 50.00% documented
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
|
|
53
|
+
- Preserve every configured Bundler lockfile platform when resetting release lockfiles.
|
|
54
|
+
|
|
55
|
+
- Materialize normalized release bundles before running bundle-exec release checks.
|
|
56
|
+
|
|
33
57
|
## [3.0.30] - 2026-09-01
|
|
34
58
|
|
|
35
59
|
- TAG: [v3.0.30][3.0.30t]
|
|
@@ -3799,7 +3823,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
3799
3823
|
- Selecting will run the selected workflow via `act`
|
|
3800
3824
|
- This may move to its own gem in the future.
|
|
3801
3825
|
|
|
3802
|
-
[Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.
|
|
3826
|
+
[Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.32...HEAD
|
|
3827
|
+
[3.0.32]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.31...v3.0.32
|
|
3828
|
+
[3.0.32t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.0.32
|
|
3829
|
+
[3.0.31]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.30...v3.0.31
|
|
3830
|
+
[3.0.31t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.0.31
|
|
3803
3831
|
[3.0.30]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.29...v3.0.30
|
|
3804
3832
|
[3.0.30t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.0.30
|
|
3805
3833
|
[3.0.29]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.28...v3.0.29
|
data/README.md
CHANGED
|
@@ -1066,7 +1066,7 @@ Thanks for RTFM. ☺️
|
|
|
1066
1066
|
[📌gitmoji]: https://gitmoji.dev
|
|
1067
1067
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
1068
1068
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
1069
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-6.
|
|
1069
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-6.607-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
1070
1070
|
[🔐security]: https://github.com/kettle-dev/kettle-dev/blob/main/SECURITY.md
|
|
1071
1071
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
1072
1072
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -202,12 +202,10 @@ module Kettle
|
|
|
202
202
|
command << " #{key}=#{Shellwords.escape(value)}"
|
|
203
203
|
end
|
|
204
204
|
command << " bundle lock"
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
platforms.
|
|
209
|
-
command << " --add-platform=#{Shellwords.escape(platform)}"
|
|
210
|
-
end
|
|
205
|
+
# Bundler accepts each platform option once followed by a list. Repeating
|
|
206
|
+
# either option silently keeps only the final occurrence with Bundler 4.
|
|
207
|
+
command << " --remove-platform #{removed_platforms.sort.map { |platform| Shellwords.escape(platform) }.join(" ")}" unless removed_platforms.empty?
|
|
208
|
+
command << " --add-platform #{platforms.map { |platform| Shellwords.escape(platform) }.join(" ")}" unless platforms.empty?
|
|
211
209
|
command << " --update"
|
|
212
210
|
command << " #{update_gems.map { |gem_name| Shellwords.escape(gem_name) }.join(" ")}" unless update_gems.empty?
|
|
213
211
|
# Bundler preserves BUNDLED WITH during a normal lockfile update.
|
|
@@ -323,6 +321,19 @@ module Kettle
|
|
|
323
321
|
.merge(dynamic_local_path_env)
|
|
324
322
|
end
|
|
325
323
|
|
|
324
|
+
# Appraisal generation normally uses the release-normalized environment.
|
|
325
|
+
# During family templating it instead needs the caller's deliberately
|
|
326
|
+
# selected local graph so generated Appraisal Gemfiles can resolve
|
|
327
|
+
# unpublished sibling dependencies.
|
|
328
|
+
def appraisal_normalization_env
|
|
329
|
+
env = normalization_env
|
|
330
|
+
return env unless template_local_environment?
|
|
331
|
+
|
|
332
|
+
env.reject do |name, _value|
|
|
333
|
+
name == "K_JEM_TEMPLATING" || active_local_path_env?(name)
|
|
334
|
+
end
|
|
335
|
+
end
|
|
336
|
+
|
|
326
337
|
def dynamic_local_path_env
|
|
327
338
|
ENV.each_with_object({}) do |(key, value), env|
|
|
328
339
|
next unless key.end_with?("_DEV", "_LOCAL")
|
|
@@ -341,6 +352,14 @@ module Kettle
|
|
|
341
352
|
text.include?(File::SEPARATOR)
|
|
342
353
|
end
|
|
343
354
|
|
|
355
|
+
def template_local_environment?
|
|
356
|
+
%w[1 true yes on].include?(ENV.fetch("K_JEM_TEMPLATING", "").to_s.strip.downcase)
|
|
357
|
+
end
|
|
358
|
+
|
|
359
|
+
def active_local_path_env?(name)
|
|
360
|
+
local_path_env_value?(ENV[name])
|
|
361
|
+
end
|
|
362
|
+
|
|
344
363
|
def has_local_path_remote?(path)
|
|
345
364
|
!disallowed_local_path_remote_lines(path).empty?
|
|
346
365
|
end
|
|
@@ -30,7 +30,7 @@ begin
|
|
|
30
30
|
"BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES" => "true"
|
|
31
31
|
}
|
|
32
32
|
appraisal_env = quiet_env.merge(
|
|
33
|
-
Kettle::Dev::LockfileReset.new(root: Dir.pwd, command_runner: ->(_command) {}).
|
|
33
|
+
Kettle::Dev::LockfileReset.new(root: Dir.pwd, command_runner: ->(_command) {}).appraisal_normalization_env
|
|
34
34
|
).merge(
|
|
35
35
|
unbundled_env
|
|
36
36
|
).merge(
|
|
@@ -266,7 +266,10 @@ module Kettle
|
|
|
266
266
|
# to collect coverage. Normalize its canonical release lockfile before
|
|
267
267
|
# that subprocess starts; otherwise a local development PATH lock can
|
|
268
268
|
# force Bundler to resolve an invalid mixed local/released graph.
|
|
269
|
-
|
|
269
|
+
if release_lockfile_preflight_needed?
|
|
270
|
+
prepare_release_lockfiles_for_release_tasks!
|
|
271
|
+
materialize_release_lockfiles_for_release_tasks!
|
|
272
|
+
end
|
|
270
273
|
run_pre_release_checks! if run_step?(0)
|
|
271
274
|
|
|
272
275
|
# 1. Ensure Bundler version and record its current release in the
|
|
@@ -752,6 +755,36 @@ module Kettle
|
|
|
752
755
|
reset_release_lockfiles!(stage: "before release task bundle installs")
|
|
753
756
|
end
|
|
754
757
|
|
|
758
|
+
# Resetting can select a platform-specific artifact that is not installed
|
|
759
|
+
# in the invoking development bundle. Materialize every canonical release
|
|
760
|
+
# bundle before a release gate runs `bundle exec`. Use a disposable copy:
|
|
761
|
+
# Bundler may reconcile the active host platform during installation, and
|
|
762
|
+
# that must never alter the canonical release-preparation lockfile.
|
|
763
|
+
def materialize_release_lockfiles_for_release_tasks!
|
|
764
|
+
release_lockfile_paths.each do |lockfile|
|
|
765
|
+
gemfile = release_gemfile_for_lockfile(lockfile)
|
|
766
|
+
next unless gemfile && File.file?(gemfile)
|
|
767
|
+
|
|
768
|
+
begin
|
|
769
|
+
stage = "before release task bundle installs"
|
|
770
|
+
task_lockfile = release_task_lockfile_path(gemfile: gemfile)
|
|
771
|
+
emit_release_lockfile_event(action: "install", status: "started", stage: stage, reason: File.basename(gemfile))
|
|
772
|
+
puts "Installing normalized release bundle for #{File.basename(gemfile)}..."
|
|
773
|
+
run_cmd!(release_child_command(
|
|
774
|
+
"bundle install",
|
|
775
|
+
environment: {
|
|
776
|
+
"BUNDLE_GEMFILE" => gemfile,
|
|
777
|
+
"BUNDLE_LOCKFILE" => task_lockfile || lockfile
|
|
778
|
+
}
|
|
779
|
+
))
|
|
780
|
+
emit_release_lockfile_event(action: "install", status: "ok", stage: stage, reason: File.basename(gemfile))
|
|
781
|
+
rescue => error
|
|
782
|
+
emit_release_lockfile_event(action: "install", status: "failed", stage: stage, reason: error.message)
|
|
783
|
+
raise
|
|
784
|
+
end
|
|
785
|
+
end
|
|
786
|
+
end
|
|
787
|
+
|
|
755
788
|
def reset_release_lockfiles!(stage:)
|
|
756
789
|
return if @release_lockfiles_reset_for_release_tasks && stage == "before release task bundle installs"
|
|
757
790
|
|
data/lib/kettle/dev/version.rb
CHANGED
|
@@ -5,7 +5,7 @@ module Kettle
|
|
|
5
5
|
# Version namespace for this gem.
|
|
6
6
|
module Version
|
|
7
7
|
# Current gem version.
|
|
8
|
-
VERSION = "3.0.
|
|
8
|
+
VERSION = "3.0.32"
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kettle-dev
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.0.
|
|
4
|
+
version: 3.0.32
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -400,10 +400,10 @@ licenses:
|
|
|
400
400
|
- AGPL-3.0-only
|
|
401
401
|
metadata:
|
|
402
402
|
homepage_uri: https://kettle-dev.galtzo.com
|
|
403
|
-
source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v3.0.
|
|
404
|
-
changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.0.
|
|
403
|
+
source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v3.0.32
|
|
404
|
+
changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.0.32/CHANGELOG.md
|
|
405
405
|
bug_tracker_uri: https://github.com/kettle-dev/kettle-dev/issues
|
|
406
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/3.0.
|
|
406
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/3.0.32
|
|
407
407
|
funding_uri: https://github.com/sponsors/pboling
|
|
408
408
|
wiki_uri: https://github.com/kettle-dev/kettle-dev/wiki
|
|
409
409
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
|
Binary file
|