kettle-dev 3.0.4 → 3.0.5

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: df94b20fa384425972e6651ef34406c7dea92977a65ce2fc6cf2c1acfe49c864
4
- data.tar.gz: adfd9376c8612bcc531c74de90c7bce8450b151e254ac07c4aaeb5387a4c766a
3
+ metadata.gz: 667298e18f32020c0774fe6499e6425de5ae71b44c40330ba9fc7e806620de66
4
+ data.tar.gz: d992bc999468d8fe27608d0ea470747d0497f98ca9cfbc02c8d82b79a5e0c773
5
5
  SHA512:
6
- metadata.gz: cf7d1db4bc0047e21715ea03c53334586a96ac3e44a06dfe4c379d556b9ea2145fed6e936873910806a089bf0181c4f3092d0e8c039ca6476692abf611db6921
7
- data.tar.gz: 90f4c57659ee5ea5503ee1d925e2cec6d158e8238a6251ab2dc54d8bd8e821bb5bcc73277e19ffbe572e8898c93511d2d76780e216baf05a78d2810d9d535772
6
+ metadata.gz: a9690ba90e3745560e5fee1ab148dd541955fe9aec0a0c15126009da514d46ac1492f73943205a99efe5264dce1f8f07dcb9c87714f2868c23eee277354fc629
7
+ data.tar.gz: 90760f66a27b7ac2d6e4524976f2e0756906b7ea4d96b4c98d29862006d06ac4931b04e724a419e3559a955f025d91a59e85b7d8ab1cf2ce95037d449fb760f7
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
+ ## [3.0.5] - 2026-08-10
34
+
35
+ - TAG: [v3.0.5][3.0.5t]
36
+ - COVERAGE: 91.65% -- 5663/6179 lines in 47 files
37
+ - BRANCH COVERAGE: 76.30% -- 2157/2827 branches in 47 files
38
+ - 50.74% documented
39
+
40
+ ### Fixed
41
+
42
+ - Keep release lockfile platforms stable across repeated normalization passes.
43
+
33
44
  ## [3.0.4] - 2026-08-10
34
45
 
35
46
  - TAG: [v3.0.4][3.0.4t]
@@ -3453,7 +3464,9 @@ Please file a bug if you notice a violation of semantic versioning.
3453
3464
  - Selecting will run the selected workflow via `act`
3454
3465
  - This may move to its own gem in the future.
3455
3466
 
3456
- [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.4...HEAD
3467
+ [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.5...HEAD
3468
+ [3.0.5]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.4...v3.0.5
3469
+ [3.0.5t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.0.5
3457
3470
  [3.0.4]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.3...v3.0.4
3458
3471
  [3.0.4t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.0.4
3459
3472
  [3.0.3]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.2...v3.0.3
data/README.md CHANGED
@@ -1007,7 +1007,7 @@ Thanks for RTFM. ☺️
1007
1007
  [📌gitmoji]: https://gitmoji.dev
1008
1008
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
1009
1009
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
1010
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-6.168-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1010
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-6.179-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1011
1011
  [🔐security]: https://github.com/kettle-dev/kettle-dev/blob/main/SECURITY.md
1012
1012
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
1013
1013
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -30,19 +30,21 @@ module Kettle
30
30
  def initialize(root:, command_runner:)
31
31
  @root = root
32
32
  @command_runner = command_runner
33
+ @release_platforms = {}
33
34
  end
34
35
 
35
36
  def reset(target)
36
37
  BundlerEnvGuard.warn_unexpected_env!
37
38
  paths = lockfile_paths_for(target)
38
39
  force_full_update = release_lockfiles_target?(target)
40
+ platforms = release_platforms_for(paths) if force_full_update
39
41
  uninstall_unreleased_local_gems(paths) if force_full_update
40
42
  paths.each do |path|
41
- reset_lockfile!(path, full_update: force_full_update) if force_full_update || normalization_needed?(path)
43
+ reset_lockfile!(path, full_update: force_full_update, platforms: platforms&.fetch(path)) if force_full_update || normalization_needed?(path)
42
44
  end
43
45
  if force_full_update && uninstall_unreleased_local_gems(paths)
44
46
  paths.each do |path|
45
- reset_lockfile!(path, full_update: true)
47
+ reset_lockfile!(path, full_update: true, platforms: platforms.fetch(path))
46
48
  end
47
49
  end
48
50
  diagnostics = paths.flat_map { |path| diagnostics(path) }
@@ -51,14 +53,14 @@ module Kettle
51
53
  paths
52
54
  end
53
55
 
54
- def reset_lockfile!(path, full_update: false)
56
+ def reset_lockfile!(path, full_update: false, platforms: nil)
55
57
  gemfile = gemfile_for_lockfile(path)
56
58
  unless gemfile && File.file?(gemfile)
57
59
  warn("Cannot reset #{display_path(path)} because its Gemfile was not found.")
58
60
  return
59
61
  end
60
62
 
61
- command = reset_command(path: path, gemfile: gemfile, full_update: full_update)
63
+ command = reset_command(path: path, gemfile: gemfile, full_update: full_update, platforms: platforms)
62
64
  if full_update || has_local_path_remote?(path)
63
65
  rebuild_lockfile(path) { command_runner.call(command) }
64
66
  else
@@ -66,8 +68,10 @@ module Kettle
66
68
  end
67
69
  end
68
70
 
69
- def reset_command(path:, gemfile:, full_update: false)
71
+ def reset_command(path:, gemfile:, full_update: false, platforms: nil)
70
72
  update_gems = (full_update || has_local_path_remote?(path)) ? [] : reset_update_gems(path)
73
+ platforms ||= reset_platforms(path)
74
+ removed_platforms = full_update ? [] : lockfile_platforms(path) - platforms
71
75
  env = normalization_env.merge(
72
76
  "BUNDLE_GEMFILE" => gemfile,
73
77
  "BUNDLE_LOCKFILE" => path
@@ -80,7 +84,10 @@ module Kettle
80
84
  command << " #{key}=#{Shellwords.escape(value)}"
81
85
  end
82
86
  command << " bundle lock"
83
- reset_platforms(path).each do |platform|
87
+ removed_platforms.sort.each do |platform|
88
+ command << " --remove-platform=#{Shellwords.escape(platform)}"
89
+ end
90
+ platforms.each do |platform|
84
91
  command << " --add-platform=#{Shellwords.escape(platform)}"
85
92
  end
86
93
  command << " --update"
@@ -90,7 +97,15 @@ module Kettle
90
97
  end
91
98
 
92
99
  def reset_platforms(path)
93
- (lockfile_platforms(path) | [Gem::Platform.local.to_s]).reject(&:empty?).sort
100
+ platforms = lockfile_platforms(path)
101
+ platforms = [Gem::Platform.local.to_s] if platforms.empty?
102
+ platforms.reject(&:empty?).sort
103
+ end
104
+
105
+ def release_platforms_for(paths)
106
+ paths.each_with_object({}) do |path, platforms|
107
+ platforms[path] = (@release_platforms[path] ||= reset_platforms(path))
108
+ end
94
109
  end
95
110
 
96
111
  def lockfile_platforms(path)
@@ -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.4"
8
+ VERSION = "3.0.5"
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
4
+ version: 3.0.5
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.4
404
- changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.0.4/CHANGELOG.md
403
+ source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v3.0.5
404
+ changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.0.5/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.4
406
+ documentation_uri: https://www.rubydoc.info/gems/kettle-dev/3.0.5
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