kettle-jem 7.1.22 → 7.1.24

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: 8a252bd3cf77adb0181517db1810fd56da1d4a7a7636ca931da5d678a91e3dc2
4
- data.tar.gz: ab1773b86d3487522ab3b69ead5c74083f69a675d988135f284344ff248c11ab
3
+ metadata.gz: 5e183814ce90643b2d4e1ba747c57730aec7a1fe2c4a07721495a3fc22cdb0b5
4
+ data.tar.gz: 9d0f017241c7ba8bb6061eb9408dd2f61145349219f518a04a6023a98900d75f
5
5
  SHA512:
6
- metadata.gz: b8ed892bad61aa16ef3d61acc4a06e8434a38884ba24381f38ee3f2910643a36812e3eb2bc3aa26c6b5ce8769753968e6d1e7aba712e774514cc239ea021c30c
7
- data.tar.gz: aaa6bcd692fcaa6a83a6a87501142cb0761a01b8435d698980fe2519ff59cb2ab7eace9b81d0ee02336b457c0c91518ce503de980680896f60f57772341b621a
6
+ metadata.gz: 1dc4f69e46b0819d491b897ee6fa078fbe44f6eee3ae8b131121c2a3f997610a76c86acbdc9d65a1645ea67540663e2daab17a2d0ba7dee2ba769878364f8ddc
7
+ data.tar.gz: bd375240be6f8bebfe334e3138a74dfc7d5f32d4c77747f90745feb2527f086e4b4a49e324f78088b48e400e243c387e43d3fb241cbdfe4b594792874061ff47
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,48 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [7.1.24] - 2026-09-08
34
+
35
+ - TAG: [v7.1.24][7.1.24t]
36
+ - COVERAGE: 93.66% -- 11248/12010 lines in 16 files
37
+ - BRANCH COVERAGE: 77.04% -- 4786/6212 branches in 16 files
38
+ - 18.14% documented
39
+
40
+ ### Changed
41
+
42
+ - [kc] kettle-jem-deps-floor: Update kettle-jem template dependency floors:
43
+ - kettle-family (>= 1.2.95 -> >= 1.2.96)
44
+
45
+ ### Fixed
46
+
47
+ - Preserve destination README Advanced Usage sections and their reference definitions during template merges.
48
+
49
+ - [kc] kettle-jem/template-destination-preservation: Preserve destination Markdown, retain the required version_gem runtime dependency for dedicated entrypoints, and rebuild RuboCop Gradual work lists after template dependency and style-rule updates.
50
+
51
+ - Rebuild the RuboCop Gradual work list after templating so generated-code, dependency, and rubocop-lts updates cannot retain stale cop names or locations.
52
+
53
+ ## [7.1.23] - 2026-09-07
54
+
55
+ - TAG: [v7.1.23][7.1.23t]
56
+ - COVERAGE: 93.66% -- 11251/12013 lines in 16 files
57
+ - BRANCH COVERAGE: 77.07% -- 4789/6214 branches in 16 files
58
+ - 18.13% documented
59
+
60
+ ### Changed
61
+
62
+ - [kc] kettle-jem-deps-floor: Update kettle-jem template dependency floors:
63
+ - kettle-dev (>= 3.0.32 -> >= 3.0.33)
64
+
65
+ ### Fixed
66
+
67
+ - Externalize active template tooling from gemspecs, remove legacy gem-release declarations from managed Gemfiles and gemspecs, and enforce self-test divergence thresholds inclusively.
68
+
69
+ - Load Bundler before JSON in maintenance executables so Ruby 4 default JSON activation cannot conflict with the project bundle.
70
+
71
+ - Declare JSON v2 as a Kettle Jem development dependency for repository-local maintenance executables.
72
+
73
+ - Keep managed dependency reconciliation specs aligned with their declared requirements.
74
+
33
75
  ## [7.1.22] - 2026-09-07
34
76
 
35
77
  - TAG: [v7.1.22][7.1.22t]
@@ -1928,7 +1970,11 @@ Please file a bug if you notice a violation of semantic versioning.
1928
1970
  - Released kettle-jem as part of the initial StructuredMerge Ruby 7.0.0 gem set.
1929
1971
  - Included packaged templates and parser-backed merge support for Ruby gem templating.
1930
1972
 
1931
- [Unreleased]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.22...HEAD
1973
+ [Unreleased]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.24...HEAD
1974
+ [7.1.24]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.23...v7.1.24
1975
+ [7.1.24t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.24
1976
+ [7.1.23]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.22...v7.1.23
1977
+ [7.1.23t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.23
1932
1978
  [7.1.22]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.21...v7.1.22
1933
1979
  [7.1.22t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.22
1934
1980
  [7.1.21]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.20...v7.1.21
data/README.md CHANGED
@@ -899,7 +899,7 @@ Thanks for RTFM. ☺️
899
899
  [📌gitmoji]: https://gitmoji.dev
900
900
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
901
901
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
902
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-12.008-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
902
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-12.010-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
903
903
  [🔐security]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/SECURITY.md
904
904
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
905
905
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -90,7 +90,8 @@ module Kettle
90
90
  def record_template_run(project_root:, report:, run_options: {}, label: "Apply kettle-jem templates")
91
91
  report = report.to_h
92
92
  if template_changelog_disabled?(run_options) || bootstrap_only_report?(report)
93
- return report.merge(changelog: {status: "skipped", reason: template_changelog_disabled?(run_options) ? "disabled" : "bootstrap_only"})
93
+ reason = template_changelog_disabled?(run_options) ? "disabled" : "bootstrap_only"
94
+ return report.merge(changelog: {status: "skipped", reason: reason})
94
95
  end
95
96
 
96
97
  changed_files = template_changed_files(report.fetch(:changed_files, []))
@@ -889,7 +889,6 @@ module Kettle
889
889
  reason: "missing_rubocop_gradual_task"
890
890
  }
891
891
  end
892
-
893
892
  {
894
893
  name: "rubocop_gradual_autocorrect",
895
894
  command: rubocop_gradual_autocorrect_command,
@@ -899,6 +898,9 @@ module Kettle
899
898
  end
900
899
 
901
900
  def rubocop_gradual_autocorrect_command
901
+ # Templating can change generated code, dependency floors, and the
902
+ # RuboCop/RuboCop-LTS rule set. Rebuild Gradual's work list from the
903
+ # resulting project instead of carrying stale cop names or locations.
902
904
  ["sh", "-c", "rm -f .rubocop_gradual.lock && bin/rake rubocop_gradual:autocorrect"]
903
905
  end
904
906
 
@@ -79,8 +79,8 @@ module Kettle
79
79
  min_divergence_threshold: threshold,
80
80
  drift: drift
81
81
  }
82
- if threshold && divergence > threshold
83
- raise Kettle::Jem::Error, "selftest divergence #{divergence}% exceeds threshold #{threshold}%"
82
+ if threshold && divergence >= threshold
83
+ raise Kettle::Jem::Error, "selftest divergence #{divergence}% reaches or exceeds threshold #{threshold}%"
84
84
  end
85
85
  result
86
86
  end
@@ -196,6 +196,8 @@ bundle exec rake rubocop_gradual:autocorrect
196
196
 
197
197
  For more detailed information about using RuboCop in this project, please see the [RUBOCOP.md](RUBOCOP.md) guide. This project uses `rubocop_gradual` instead of vanilla RuboCop, which requires specific commands for checking violations.
198
198
 
199
+ Kettle Jem resets `.rubocop_gradual.lock` before its post-template autocorrect step. Template and dependency updates, including updates to the `rubocop-lts` suite, can change the applicable cops; the regenerated lock is the current work list, not a preserved baseline.
200
+
199
201
  ### Important: Do not add inline RuboCop disables
200
202
 
201
203
  Never add `# rubocop:disable ...` / `# rubocop:enable ...` comments to code or specs (except when following the few existing `rubocop:disable` patterns for a rule already being disabled elsewhere in the code). Instead:
@@ -29,6 +29,8 @@ bundle exec rake rubocop_gradual:check
29
29
 
30
30
  The `.rubocop_gradual.lock` file is a work list, not a permanent baseline. Every entry represents a style issue that should be resolved by either fixing the code or making an intentional exception explicit.
31
31
 
32
+ Kettle Jem deletes this work list before its post-template `rubocop_gradual:autocorrect` step. Templating can update generated code and dependencies, including the `rubocop-lts` suite, which can add, remove, or rename cops. Rebuilding the work list against the resulting project prevents stale cop names and locations from masking the current style state.
33
+
32
34
  This allows the team to:
33
35
 
34
36
  1. Prevent new violations while existing issues are handled deliberately
@@ -118,7 +118,7 @@ Gem::Specification.new do |spec|
118
118
  # and preferably a modular one (see gemfiles/modular/*.gemfile).
119
119
 
120
120
  # Dev, Test, & Release Tasks
121
- spec.add_development_dependency("kettle-dev", "~> 3.0", ">= 3.0.32") # ruby >= {KJ|MIN_TEST_RUBY}
121
+ spec.add_development_dependency("kettle-dev", "~> 3.0", ">= 3.0.33") # ruby >= {KJ|MIN_TEST_RUBY}
122
122
 
123
123
  # Security
124
124
  spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency "{KJ|SHIMMED_GEM_NAME}"
31
31
 
32
32
  # Dev, Test, & Release Tasks
33
- spec.add_development_dependency("kettle-dev", "~> 3.0", ">= 3.0.32") # ruby >= {KJ|MIN_TEST_RUBY}
33
+ spec.add_development_dependency("kettle-dev", "~> 3.0", ">= 3.0.33") # ruby >= {KJ|MIN_TEST_RUBY}
34
34
 
35
35
  # Tasks
36
36
  spec.add_development_dependency "rake", "~> 13.0"
@@ -5,7 +5,7 @@ module Kettle
5
5
  # Version namespace for this gem.
6
6
  module Version
7
7
  # Current gem version.
8
- VERSION = "7.1.22"
8
+ VERSION = "7.1.24"
9
9
  end
10
10
  # Current gem version exposed at the traditional constant location.
11
11
  VERSION = Version::VERSION # Traditional Constant Location
data/lib/kettle/jem.rb CHANGED
@@ -17,6 +17,7 @@ require "token/resolver"
17
17
  require "yaml"
18
18
  require "ast/merge"
19
19
  require "ast/crispr/markdown/markly"
20
+ require "markdown/merge"
20
21
  require "kettle/ndjson"
21
22
  require "rbs"
22
23
  require "kettle/dev"
@@ -57,7 +58,7 @@ module Kettle
57
58
  # set in place before Bundler is allowed to evaluate that destination.
58
59
  TEMPLATE_MANAGED_DEPENDENCIES = [
59
60
  {name: "nomono", requirements: ["~> 1.1", ">= 1.1.5"], bootstrap: true},
60
- {name: "kettle-dev", requirements: ["~> 3.0", ">= 3.0.32"], bootstrap: true},
61
+ {name: "kettle-dev", requirements: ["~> 3.0", ">= 3.0.33"], bootstrap: true},
61
62
  {
62
63
  name: "kettle-changelog",
63
64
  requirements: ["~> 1.0", ">= 1.0.7"],
@@ -89,7 +90,13 @@ module Kettle
89
90
  ].freeze
90
91
  DEFAULT_ENGINES = %w[ruby jruby truffleruby].freeze
91
92
  DEFAULT_OPENCOLLECTIVE_ORG = "galtzo-floss"
92
- RETIRED_GEMSPEC_DEVELOPMENT_DEPENDENCIES = %w[kettle-drift kettle-soup-cover rubocop-rspec yard-junk].freeze
93
+ # These tools remain active, but their dependency ownership belongs to the
94
+ # generated modular Gemfiles rather than a destination gemspec.
95
+ EXTERNALIZED_GEMSPEC_DEVELOPMENT_DEPENDENCIES = %w[kettle-drift kettle-soup-cover rubocop-rspec yard-junk].freeze
96
+ # These legacy release tools must not be retained in any managed dependency
97
+ # declaration. Kettle Dev owns release workflows.
98
+ PROHIBITED_GEMSPEC_DEPENDENCIES = %w[gem-release].freeze
99
+ PROHIBITED_GEMFILE_DEPENDENCIES = PROHIBITED_GEMSPEC_DEPENDENCIES.freeze
93
100
  FILE_DELETION_PRIMITIVES = %w[
94
101
  supplied_obsolete_file_deletion
95
102
  supplied_opt_in_workflow_deletion
@@ -1416,7 +1423,7 @@ module Kettle
1416
1423
  end
1417
1424
  end
1418
1425
  end
1419
- README_DEFAULT_PRESERVE_SECTIONS = ["synopsis", "configuration", "basic usage"].freeze
1426
+ README_DEFAULT_PRESERVE_SECTIONS = ["synopsis", "configuration", "basic usage", "advanced usage"].freeze
1420
1427
  README_DEFAULT_PRESERVE_PATTERNS = ["note:*"].freeze
1421
1428
  README_CODETRIAGE_BADGE = "[![Open Source Helpers][👽oss-helpi]][👽oss-help]"
1422
1429
  README_CODETRIAGE_LINK_LABELS = ["👽oss-help", "👽oss-helpi"].freeze
@@ -5444,6 +5451,7 @@ module Kettle
5444
5451
  updated = reconcile_template_managed_dependencies(
5445
5452
  ensure_trailing_newline(content.to_s.empty? ? %(source "https://gem.coop"\n) : content.to_s).dup
5446
5453
  )
5454
+ updated = remove_gemfile_dependency_blocks(updated, PROHIBITED_GEMFILE_DEPENDENCIES)
5447
5455
  monorepo_root_gemfile_dependency_lines.each do |line|
5448
5456
  next if gemfile_declares_gem?(updated, line.fetch(:name))
5449
5457
 
@@ -5457,9 +5465,9 @@ module Kettle
5457
5465
  [
5458
5466
  {name: "appraisal2", source: %(gem "appraisal2", "~> 3.2", ">= 3.2.3"\n)},
5459
5467
  {name: "bundler-audit", source: %(gem "bundler-audit", "~> 0.9.3"\n)},
5460
- {name: "kettle-dev", source: %(gem "kettle-dev", "~> 3.0", ">= 3.0.32"\n)},
5468
+ {name: "kettle-dev", source: %(gem "kettle-dev", "~> 3.0", ">= 3.0.33"\n)},
5461
5469
  {name: "kettle-drift", source: %(gem "kettle-drift", "~> 1.0", ">= 1.0.13"\n)},
5462
- {name: "kettle-family", source: %(gem "kettle-family", "~> 1.2", ">= 1.2.95"\n)},
5470
+ {name: "kettle-family", source: %(gem "kettle-family", "~> 1.2", ">= 1.2.96"\n)},
5463
5471
  {name: PACKAGE_NAME, source: kettle_jem_dependency_source},
5464
5472
  {name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.21"\n)},
5465
5473
  {name: "rake", source: %(gem "rake", "~> 13.0"\n)},
@@ -7970,7 +7978,7 @@ module Kettle
7970
7978
  when :markdown
7971
7979
  return merge_changelog_template_source(template_content, destination_content, facts: facts) if recipe.fetch(:target_path) == "CHANGELOG.md"
7972
7980
 
7973
- return template_content
7981
+ merge_result = Markdown::Merge.merge_markdown(template_content, destination_content, "markdown")
7974
7982
  when :dotenv
7975
7983
  merge_result = merge_dotenv_template_source(template_content, destination_content, recipe)
7976
7984
  when :rbs
@@ -9375,7 +9383,7 @@ module Kettle
9375
9383
 
9376
9384
  def merge_gemfile_template_policy(content, facts:, template_content: nil, preserve_self_word_entries: false)
9377
9385
  package_name = facts.dig(:package, :name).to_s if facts
9378
- removable_gems = ["appraisal"]
9386
+ removable_gems = ["appraisal", *PROHIBITED_GEMFILE_DEPENDENCIES]
9379
9387
  removable_gems << package_name unless package_name.to_s.empty?
9380
9388
  removable_gems.concat(package_runtime_dependency_names(facts))
9381
9389
  removable_gems << "version_gem" unless version_gem_enabled?(facts)
@@ -10685,7 +10693,11 @@ module Kettle
10685
10693
  receiver: template_receiver,
10686
10694
  template_declares_version_gem: gemspec_dependency_names(template_content).include?("version_gem")
10687
10695
  )
10688
- merged = remove_gemspec_version_gem_dependency_when_non_default_entrypoint(merged, facts, receiver: template_receiver)
10696
+ merged = remove_gemspec_dependency_lines(
10697
+ merged,
10698
+ receiver: template_receiver,
10699
+ names: PROHIBITED_GEMSPEC_DEPENDENCIES
10700
+ )
10689
10701
  # Yard owns the documentation dependency graph. A direct gemspec rdoc
10690
10702
  # development dependency creates an unnecessary second owner and can
10691
10703
  # conflict with the documentation modular Gemfile.
@@ -11074,13 +11086,6 @@ module Kettle
11074
11086
  facts.to_h.dig(:version_gem, :enabled) == false
11075
11087
  end
11076
11088
 
11077
- def remove_gemspec_version_gem_dependency_when_non_default_entrypoint(content, facts, receiver:)
11078
- return content unless facts.to_h.dig(:version_gem, :non_default_entrypoint)
11079
-
11080
- cleaned = remove_gemspec_dependency_lines(content, receiver: receiver, names: ["version_gem"], runtime_only: true)
11081
- remove_ruby_comment_lines_containing(cleaned, "version_gem")
11082
- end
11083
-
11084
11089
  def remove_gemspec_assignment(content, receiver:, field:)
11085
11090
  records_by_line = gemspec_assignment_records(content, receiver: receiver)
11086
11091
  .select { |record| record.fetch(:field) == field.to_s }
@@ -11823,7 +11828,7 @@ module Kettle
11823
11828
  enforce_gemspec_dependency_minimum_requirements(normalized, receiver: template_receiver)
11824
11829
  end
11825
11830
  destination_dependencies = destination_dependencies.reject do |key, _source|
11826
- retired_gemspec_development_dependency_key?(key)
11831
+ excluded_gemspec_dependency_key?(key)
11827
11832
  end
11828
11833
  return template_content if destination_dependencies.empty?
11829
11834
 
@@ -12223,9 +12228,11 @@ module Kettle
12223
12228
  [record.fetch(:kind), record.fetch(:name)]
12224
12229
  end
12225
12230
 
12226
- def retired_gemspec_development_dependency_key?(key)
12231
+ def excluded_gemspec_dependency_key?(key)
12232
+ return true if PROHIBITED_GEMSPEC_DEPENDENCIES.include?(key.last)
12233
+
12227
12234
  key.first == "add_development_dependency" &&
12228
- RETIRED_GEMSPEC_DEVELOPMENT_DEPENDENCIES.include?(key.last)
12235
+ EXTERNALIZED_GEMSPEC_DEVELOPMENT_DEPENDENCIES.include?(key.last)
12229
12236
  end
12230
12237
 
12231
12238
  def gemspec_dependency_source_newer?(candidate_source, current_source, receiver:)
@@ -15488,7 +15495,7 @@ module Kettle
15488
15495
  def main_gemfile_kettle_family_gem(package_name)
15489
15496
  return "" if package_name.to_s == "kettle-family"
15490
15497
 
15491
- %(gem "kettle-family", "~> 1.2", ">= 1.2.95"\n)
15498
+ %(gem "kettle-family", "~> 1.2", ">= 1.2.96"\n)
15492
15499
  end
15493
15500
 
15494
15501
  def main_gemfile_nomono_bootstrap(package_name)
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kettle-jem
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.22
4
+ version: 7.1.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -559,6 +559,26 @@ dependencies:
559
559
  - - ">="
560
560
  - !ruby/object:Gem::Version
561
561
  version: 7.1.8
562
+ - !ruby/object:Gem::Dependency
563
+ name: version_gem
564
+ requirement: !ruby/object:Gem::Requirement
565
+ requirements:
566
+ - - "~>"
567
+ - !ruby/object:Gem::Version
568
+ version: '1.1'
569
+ - - ">="
570
+ - !ruby/object:Gem::Version
571
+ version: 1.1.15
572
+ type: :runtime
573
+ prerelease: false
574
+ version_requirements: !ruby/object:Gem::Requirement
575
+ requirements:
576
+ - - "~>"
577
+ - !ruby/object:Gem::Version
578
+ version: '1.1'
579
+ - - ">="
580
+ - !ruby/object:Gem::Version
581
+ version: 1.1.15
562
582
  - !ruby/object:Gem::Dependency
563
583
  name: yaml-merge
564
584
  requirement: !ruby/object:Gem::Requirement
@@ -593,6 +613,26 @@ dependencies:
593
613
  - - "~>"
594
614
  - !ruby/object:Gem::Version
595
615
  version: 0.9.3
616
+ - !ruby/object:Gem::Dependency
617
+ name: json
618
+ requirement: !ruby/object:Gem::Requirement
619
+ requirements:
620
+ - - "~>"
621
+ - !ruby/object:Gem::Version
622
+ version: '2.0'
623
+ - - ">="
624
+ - !ruby/object:Gem::Version
625
+ version: 2.21.2
626
+ type: :development
627
+ prerelease: false
628
+ version_requirements: !ruby/object:Gem::Requirement
629
+ requirements:
630
+ - - "~>"
631
+ - !ruby/object:Gem::Version
632
+ version: '2.0'
633
+ - - ">="
634
+ - !ruby/object:Gem::Version
635
+ version: 2.21.2
596
636
  - !ruby/object:Gem::Dependency
597
637
  name: rake
598
638
  requirement: !ruby/object:Gem::Requirement
@@ -976,10 +1016,10 @@ licenses:
976
1016
  - PolyForm-Small-Business-1.0.0
977
1017
  metadata:
978
1018
  homepage_uri: https://structuredmerge.org
979
- source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.22
980
- changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.22/CHANGELOG.md
1019
+ source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.24
1020
+ changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.24/CHANGELOG.md
981
1021
  bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
982
- documentation_uri: https://www.rubydoc.info/gems/kettle-jem/7.1.22
1022
+ documentation_uri: https://www.rubydoc.info/gems/kettle-jem/7.1.24
983
1023
  funding_uri: https://github.com/sponsors/pboling
984
1024
  wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
985
1025
  news_uri: https://www.railsbling.com/tags/kettle-jem
metadata.gz.sig CHANGED
Binary file