kettle-dev 2.5.1 → 2.5.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: 9975348ccc03484b31a14bcb13b9da4191f2296547d72c7866b35cd603fd66cd
4
- data.tar.gz: 87918a8f059258b36fe87ceb242eb1d8abe4ee8e18a7a5ddf9a04a0be8679b55
3
+ metadata.gz: 8e34514da333085fc17f64ad81904f1f1640e77f960fa23778a048bc02a6aa53
4
+ data.tar.gz: 68a69a9cbcc0f456678c0f6ea38c721ed911a5e3e020647564650b6cf37ad32b
5
5
  SHA512:
6
- metadata.gz: 21373f304fbeeae9a69c93596f68cf718ae0c61432e4bd527a447702f8f50357eb0b9ec226758438049415a3d222672388e01792ceb12ba64456463dff12ad2f
7
- data.tar.gz: 78250942ecb9f4d6b5adc5635cf5e4b3151f82d8c5a968913361e984dede50852103c912eae25153e59c939e97b0d73f7bdfc9faf01c8bbc853a081a1316167f
6
+ metadata.gz: 9947e89b73f0b45047d4ad1845e5cbcbd1226a2c68fdf3cc4a508e15d841134b44c0647c1c6d2f2844665d942209edfc55b5c0a8b01d0f7692012f98eae72ea1
7
+ data.tar.gz: 32221f4a255995e476076152a2131134c89958d55f0ee0e8384ed4a930ee20898967f08e2391e3c6a0bc610ffbc32dc1a1da4e8a19c673213cf7147f4546411a
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,28 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [2.5.2] - 2026-07-27
34
+
35
+ - TAG: [v2.5.2][2.5.2t]
36
+ - COVERAGE: 91.92% -- 4619/5025 lines in 42 files
37
+ - BRANCH COVERAGE: 76.50% -- 1761/2302 branches in 42 files
38
+ - 56.04% documented
39
+
40
+ ### Fixed
41
+
42
+ - `kettle-reset release-lockfiles` now detects local workspace gem versions
43
+ that Bundler locked as registry gems even when checksum entries are present,
44
+ so unreleased sibling versions are not committed into release lockfiles.
45
+
46
+ - `kettle-reset` now scans workspace sibling directories with Ruby 2.4
47
+ compatible APIs, fixing Ruby 2.4 CI failures in lockfile reset specs.
48
+
49
+ ### Changed
50
+
51
+ - kettle-jem-template-20260728-001 - Generated Ruby workflows now use clearer
52
+ setup-ruby-flash planning and can prepare appraisal-only jobs without
53
+ installing the main Gemfile bundle.
54
+
33
55
  ## [2.5.1] - 2026-07-27
34
56
 
35
57
  - TAG: [v2.5.1][2.5.1t]
@@ -2893,7 +2915,9 @@ Please file a bug if you notice a violation of semantic versioning.
2893
2915
  - Selecting will run the selected workflow via `act`
2894
2916
  - This may move to its own gem in the future.
2895
2917
 
2896
- [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.1...HEAD
2918
+ [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.2...HEAD
2919
+ [2.5.2]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.1...v2.5.2
2920
+ [2.5.2t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.5.2
2897
2921
  [2.5.1]: https://github.com/kettle-dev/kettle-dev/compare/v2.5.0...v2.5.1
2898
2922
  [2.5.1t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v2.5.1
2899
2923
  [2.5.0]: https://github.com/kettle-dev/kettle-dev/compare/v2.4.6...v2.5.0
data/README.md CHANGED
@@ -1005,7 +1005,7 @@ Thanks for RTFM. ☺️
1005
1005
  [📌gitmoji]: https://gitmoji.dev
1006
1006
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
1007
1007
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
1008
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-5.006-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1008
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-5.025-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1009
1009
  [🔐security]: https://github.com/kettle-dev/kettle-dev/blob/main/SECURITY.md
1010
1010
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
1011
1011
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -91,12 +91,13 @@ module Kettle
91
91
  (
92
92
  path_source_gems(path).to_a |
93
93
  path_dependency_gems(path).to_a |
94
- empty_registry_checksums(path).map(&:first)
94
+ empty_registry_checksums(path).map(&:first) |
95
+ unreleased_workspace_registry_specs(path).map(&:first)
95
96
  ).uniq.sort
96
97
  end
97
98
 
98
99
  def normalization_needed?(path)
99
- has_local_path_remote?(path) || !empty_registry_checksums(path).empty?
100
+ has_local_path_remote?(path) || !empty_registry_checksums(path).empty? || !unreleased_workspace_registry_specs(path).empty?
100
101
  end
101
102
 
102
103
  def diagnostics(path)
@@ -107,6 +108,9 @@ module Kettle
107
108
  empty_registry_checksums(path).each do |name, version, line_number|
108
109
  diagnostics << "#{display_path(path)} CHECKSUMS has no sha256 for #{name} #{version} at line #{line_number}"
109
110
  end
111
+ unreleased_workspace_registry_specs(path).each do |name, version, line_number|
112
+ diagnostics << "#{display_path(path)} locks local workspace gem #{name} #{version} as a registry gem, but that version is not released on RubyGems.org at line #{line_number}"
113
+ end
110
114
  diagnostics
111
115
  end
112
116
 
@@ -224,6 +228,18 @@ module Kettle
224
228
  entries
225
229
  end
226
230
 
231
+ def unreleased_workspace_registry_specs(path)
232
+ local_names = local_workspace_gem_names
233
+ return [] if local_names.empty?
234
+
235
+ registry_specs_with_lines(path).filter_map do |name, version, line_number|
236
+ next unless local_names.include?(name)
237
+ next if ruby_gems_version_available?(name, version)
238
+
239
+ [name, version, line_number]
240
+ end
241
+ end
242
+
227
243
  def has_any_sha_checksum?(path)
228
244
  in_checksums = false
229
245
  File.readlines(path).any? do |line|
@@ -347,10 +363,14 @@ module Kettle
347
363
  end
348
364
 
349
365
  def registry_specs(path)
366
+ registry_specs_with_lines(path).map { |name, version, _line_number| [name, version] }
367
+ end
368
+
369
+ def registry_specs_with_lines(path)
350
370
  specs = []
351
371
  in_gem = false
352
372
  in_specs = false
353
- File.readlines(path).each do |line|
373
+ File.readlines(path).each.with_index(1) do |line, line_number|
354
374
  stripped = line.chomp
355
375
  if stripped == "GEM"
356
376
  in_gem = true
@@ -367,7 +387,7 @@ module Kettle
367
387
  next unless in_specs
368
388
 
369
389
  match = stripped.match(/\A ([A-Za-z0-9_.-]+) \(([^)]+)\)/)
370
- specs << [match[1], match[2]] if match
390
+ specs << [match[1], match[2], line_number] if match
371
391
  end
372
392
  specs
373
393
  end
@@ -425,12 +445,28 @@ module Kettle
425
445
  paths.each_with_object(Set.new) do |path, names|
426
446
  next unless File.directory?(path)
427
447
 
428
- Dir[File.join(path, "*", "*.gemspec")].each do |gemspec|
429
- names << File.basename(gemspec, ".gemspec")
448
+ workspace_children(path).each do |child|
449
+ next unless directory?(child)
450
+
451
+ Dir[File.join(child, "*.gemspec")].each do |gemspec|
452
+ names << File.basename(gemspec, ".gemspec")
453
+ end
430
454
  end
431
455
  end
432
456
  end
433
457
 
458
+ def workspace_children(path)
459
+ Dir.entries(path).reject { |child| child == "." || child == ".." }.map { |child| File.join(path, child) }
460
+ rescue SystemCallError
461
+ []
462
+ end
463
+
464
+ def directory?(path)
465
+ File.stat(path).directory?
466
+ rescue SystemCallError
467
+ false
468
+ end
469
+
434
470
  def validation_message(target, diagnostics)
435
471
  <<~MSG
436
472
  Reset #{target} failed validation:
@@ -5,7 +5,7 @@ module Kettle
5
5
  # Version namespace for this gem.
6
6
  module Version
7
7
  # Current gem version.
8
- VERSION = "2.5.1"
8
+ VERSION = "2.5.2"
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: 2.5.1
4
+ version: 2.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -395,10 +395,10 @@ licenses:
395
395
  - AGPL-3.0-only
396
396
  metadata:
397
397
  homepage_uri: https://kettle-dev.galtzo.com
398
- source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.5.1
399
- changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.5.1/CHANGELOG.md
398
+ source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v2.5.2
399
+ changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v2.5.2/CHANGELOG.md
400
400
  bug_tracker_uri: https://github.com/kettle-dev/kettle-dev/issues
401
- documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.5.1
401
+ documentation_uri: https://www.rubydoc.info/gems/kettle-dev/2.5.2
402
402
  funding_uri: https://github.com/sponsors/pboling
403
403
  wiki_uri: https://github.com/kettle-dev/kettle-dev/wiki
404
404
  news_uri: https://www.railsbling.com/tags/kettle-dev
metadata.gz.sig CHANGED
Binary file