kettle-dev 3.0.17 → 3.0.18

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: f66f871d88afeaa31ae017c4160572849be5c60b352b956d03392e87c513b4b9
4
- data.tar.gz: bf62e022d4fbfa4b5aaa30c90d5468c0c931ea815819f3f966958efcf2c4831e
3
+ metadata.gz: 4dc02c70ec8eb1cdf707e6cbef542a3117258006a83a9f6ac15261388c05b147
4
+ data.tar.gz: 6c4a8431553b479404d1a3d4264e633fd54e9154fbb305e7f10b80167da53220
5
5
  SHA512:
6
- metadata.gz: 7c886d799dc0a7f3fb65c065e638b478bc4a81653028c57e5cf59aed0e92098065c85c14147b061f29f9177ea56523803ad87586f20fabb62bba5efdddf83332
7
- data.tar.gz: cf5748d69de40fa374e3ec36b7a79cf4315ae29b61104c9f1a6b44ff4d4df08baf9ff16be06ffead8ac806b46cc9881cdae6b2f6d03ca1d5d6b47485edf0f994
6
+ metadata.gz: 0e400e4b0bcfe3019606b4954b91430818ff760f69497dbe5c18a2a9a9f2f82755a496a2773db82c830477eb4e7785344108cb93294224b70dc249c37dc10dae
7
+ data.tar.gz: 8163c6e8ff99e586bc2085184968509ae28bbb6c547c0189a08c2a48780e6b8260598421a695a089a1e856dd1d82beff34d8122583f21e3762e808daac6f4114
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,23 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [3.0.18] - 2026-08-30
34
+
35
+ - TAG: [v3.0.18][3.0.18t]
36
+ - COVERAGE: 91.58% -- 5852/6390 lines in 47 files
37
+ - BRANCH COVERAGE: 76.21% -- 2243/2943 branches in 47 files
38
+ - 50.97% documented
39
+
40
+ ### Fixed
41
+
42
+ - Skip volatile contrib.rocks contributor images during pre-release Markdown image validation.
43
+
44
+ - Prevent temporary Git fixture maintenance from racing with parallel test cleanup.
45
+
46
+ - Ensure release Git hooks receive nil-valued environment overrides as unset variables on JRuby.
47
+
48
+ - Prevent temporary Git fixture cleanup from racing with Git auto-maintenance on older Ruby CI.
49
+
33
50
  ## [3.0.17] - 2026-08-29
34
51
 
35
52
  - TAG: [v3.0.17][3.0.17t]
@@ -3634,7 +3651,9 @@ Please file a bug if you notice a violation of semantic versioning.
3634
3651
  - Selecting will run the selected workflow via `act`
3635
3652
  - This may move to its own gem in the future.
3636
3653
 
3637
- [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.17...HEAD
3654
+ [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.18...HEAD
3655
+ [3.0.18]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.17...v3.0.18
3656
+ [3.0.18t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.0.18
3638
3657
  [3.0.17]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.16...v3.0.17
3639
3658
  [3.0.17t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.0.17
3640
3659
  [3.0.16]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.15...v3.0.16
data/README.md CHANGED
@@ -672,7 +672,7 @@ versions that are newer than the latest released version.
672
672
  - 3) Validate Markdown references and local heading targets.
673
673
  - 4) Validate that all image URLs referenced by Markdown files resolve (HTTP HEAD).
674
674
  - Image URL skips:
675
- - Star-history image API URLs are skipped by default because they are volatile.
675
+ - Star-history and contrib.rocks generated image URLs are skipped by default because they are volatile.
676
676
  - Unresolved Kettle-Jem template tokens are skipped because they are not URLs until templating completes.
677
677
  - Add project-specific shell-style URL patterns in `.kettle-family.yml` or a config path pointed to by `KETTLE_FAMILY_CONFIG`. `kettle-family` passes this path through when it orchestrates a member release, but `kettle-dev` owns the matching and validation:
678
678
  ```yaml
@@ -1048,7 +1048,7 @@ Thanks for RTFM. ☺️
1048
1048
  [📌gitmoji]: https://gitmoji.dev
1049
1049
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
1050
1050
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
1051
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-6.383-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1051
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-6.390-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1052
1052
  [🔐security]: https://github.com/kettle-dev/kettle-dev/blob/main/SECURITY.md
1053
1053
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
1054
1054
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -429,12 +429,26 @@ module Kettle
429
429
  return system(*command) if env.empty? && @root == Dir.pwd
430
430
  return system(*command, chdir: @root) if env.empty?
431
431
 
432
+ # JRuby 9.2 passes nil-valued entries to child processes as empty
433
+ # strings. Use POSIX env(1) for those entries so release hooks see an
434
+ # actually absent Bundler variable on every supported Unix engine.
435
+ if env.values.any?(&:nil?) && !Gem.win_platform?
436
+ command = command_with_unset_environment(command, env)
437
+ env = {}
438
+ end
439
+
432
440
  if @root == Dir.pwd
433
441
  system(env, *command)
434
442
  else
435
443
  system(env, *command, chdir: @root)
436
444
  end
437
445
  end
446
+
447
+ def command_with_unset_environment(command, env)
448
+ unset_names = env.select { |_name, value| value.nil? }.keys
449
+ set_values = env.reject { |_name, value| value.nil? }.map { |name, value| "#{name}=#{value}" }
450
+ ["env", *unset_names.flat_map { |name| ["-u", name] }, *set_values, *command]
451
+ end
438
452
  end
439
453
  end
440
454
  end
@@ -33,7 +33,8 @@ module Kettle
33
33
  IMAGE_URL_CACHE_TTL_SECONDS = 7 * 24 * 60 * 60
34
34
  DEFAULT_IMAGE_URL_SKIP_PATTERNS = [
35
35
  "https://api.star-history.com/svg*",
36
- "https://star-history.dera.page/svg*"
36
+ "https://star-history.dera.page/svg*",
37
+ "https://contrib.rocks/image*"
37
38
  ].freeze
38
39
  FAMILY_CONFIG_PATHS = [".kettle-family.yml", ".structuredmerge/kettle-family.yml"].freeze
39
40
 
@@ -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.17"
8
+ VERSION = "3.0.18"
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.17
4
+ version: 3.0.18
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.17
404
- changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.0.17/CHANGELOG.md
403
+ source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v3.0.18
404
+ changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.0.18/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.17
406
+ documentation_uri: https://www.rubydoc.info/gems/kettle-dev/3.0.18
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