kettle-jem 7.1.22 → 7.1.23

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: 8b44bfaa2d3dc87b533330ef926a348487a57912fcd4f5c3c75f2f39b5f3d6f0
4
+ data.tar.gz: a42faa5fb58ce8fc630dacebbd9c7cabd75641791236fb405a4471accf7e0b7b
5
5
  SHA512:
6
- metadata.gz: b8ed892bad61aa16ef3d61acc4a06e8434a38884ba24381f38ee3f2910643a36812e3eb2bc3aa26c6b5ce8769753968e6d1e7aba712e774514cc239ea021c30c
7
- data.tar.gz: aaa6bcd692fcaa6a83a6a87501142cb0761a01b8435d698980fe2519ff59cb2ab7eace9b81d0ee02336b457c0c91518ce503de980680896f60f57772341b621a
6
+ metadata.gz: 0f692b668c282c7657c5af5bfb3de195d996d2f9eda582b8bb55ee39ed9d31a863b66fd17b82b75925ed949092336d5e74a66539a7d4a9efd91974b0ec4c5bb3
7
+ data.tar.gz: 0f7d11313e632476917ee8b3a4afd492998d82f9bd8c8535a6e195cb5185c8caa167f5fd2ac295cb0e0f28a4d7e86443b47e054faba8488825213185d6206377
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
+ ## [7.1.23] - 2026-09-07
34
+
35
+ - TAG: [v7.1.23][7.1.23t]
36
+ - COVERAGE: 93.66% -- 11251/12013 lines in 16 files
37
+ - BRANCH COVERAGE: 77.07% -- 4789/6214 branches in 16 files
38
+ - 18.13% documented
39
+
40
+ ### Changed
41
+
42
+ - [kc] kettle-jem-deps-floor: Update kettle-jem template dependency floors:
43
+ - kettle-dev (>= 3.0.32 -> >= 3.0.33)
44
+
45
+ ### Fixed
46
+
47
+ - Externalize active template tooling from gemspecs, remove legacy gem-release declarations from managed Gemfiles and gemspecs, and enforce self-test divergence thresholds inclusively.
48
+
49
+ - Load Bundler before JSON in maintenance executables so Ruby 4 default JSON activation cannot conflict with the project bundle.
50
+
51
+ - Declare JSON v2 as a Kettle Jem development dependency for repository-local maintenance executables.
52
+
53
+ - Keep managed dependency reconciliation specs aligned with their declared requirements.
54
+
33
55
  ## [7.1.22] - 2026-09-07
34
56
 
35
57
  - TAG: [v7.1.22][7.1.22t]
@@ -1928,7 +1950,9 @@ Please file a bug if you notice a violation of semantic versioning.
1928
1950
  - Released kettle-jem as part of the initial StructuredMerge Ruby 7.0.0 gem set.
1929
1951
  - Included packaged templates and parser-backed merge support for Ruby gem templating.
1930
1952
 
1931
- [Unreleased]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.22...HEAD
1953
+ [Unreleased]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.23...HEAD
1954
+ [7.1.23]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.22...v7.1.23
1955
+ [7.1.23t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.23
1932
1956
  [7.1.22]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.21...v7.1.22
1933
1957
  [7.1.22t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.22
1934
1958
  [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.013-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
@@ -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
@@ -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.23"
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
@@ -57,7 +57,7 @@ module Kettle
57
57
  # set in place before Bundler is allowed to evaluate that destination.
58
58
  TEMPLATE_MANAGED_DEPENDENCIES = [
59
59
  {name: "nomono", requirements: ["~> 1.1", ">= 1.1.5"], bootstrap: true},
60
- {name: "kettle-dev", requirements: ["~> 3.0", ">= 3.0.32"], bootstrap: true},
60
+ {name: "kettle-dev", requirements: ["~> 3.0", ">= 3.0.33"], bootstrap: true},
61
61
  {
62
62
  name: "kettle-changelog",
63
63
  requirements: ["~> 1.0", ">= 1.0.7"],
@@ -89,7 +89,13 @@ module Kettle
89
89
  ].freeze
90
90
  DEFAULT_ENGINES = %w[ruby jruby truffleruby].freeze
91
91
  DEFAULT_OPENCOLLECTIVE_ORG = "galtzo-floss"
92
- RETIRED_GEMSPEC_DEVELOPMENT_DEPENDENCIES = %w[kettle-drift kettle-soup-cover rubocop-rspec yard-junk].freeze
92
+ # These tools remain active, but their dependency ownership belongs to the
93
+ # generated modular Gemfiles rather than a destination gemspec.
94
+ EXTERNALIZED_GEMSPEC_DEVELOPMENT_DEPENDENCIES = %w[kettle-drift kettle-soup-cover rubocop-rspec yard-junk].freeze
95
+ # These legacy release tools must not be retained in any managed dependency
96
+ # declaration. Kettle Dev owns release workflows.
97
+ PROHIBITED_GEMSPEC_DEPENDENCIES = %w[gem-release].freeze
98
+ PROHIBITED_GEMFILE_DEPENDENCIES = PROHIBITED_GEMSPEC_DEPENDENCIES.freeze
93
99
  FILE_DELETION_PRIMITIVES = %w[
94
100
  supplied_obsolete_file_deletion
95
101
  supplied_opt_in_workflow_deletion
@@ -5444,6 +5450,7 @@ module Kettle
5444
5450
  updated = reconcile_template_managed_dependencies(
5445
5451
  ensure_trailing_newline(content.to_s.empty? ? %(source "https://gem.coop"\n) : content.to_s).dup
5446
5452
  )
5453
+ updated = remove_gemfile_dependency_blocks(updated, PROHIBITED_GEMFILE_DEPENDENCIES)
5447
5454
  monorepo_root_gemfile_dependency_lines.each do |line|
5448
5455
  next if gemfile_declares_gem?(updated, line.fetch(:name))
5449
5456
 
@@ -5457,7 +5464,7 @@ module Kettle
5457
5464
  [
5458
5465
  {name: "appraisal2", source: %(gem "appraisal2", "~> 3.2", ">= 3.2.3"\n)},
5459
5466
  {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)},
5467
+ {name: "kettle-dev", source: %(gem "kettle-dev", "~> 3.0", ">= 3.0.33"\n)},
5461
5468
  {name: "kettle-drift", source: %(gem "kettle-drift", "~> 1.0", ">= 1.0.13"\n)},
5462
5469
  {name: "kettle-family", source: %(gem "kettle-family", "~> 1.2", ">= 1.2.95"\n)},
5463
5470
  {name: PACKAGE_NAME, source: kettle_jem_dependency_source},
@@ -9375,7 +9382,7 @@ module Kettle
9375
9382
 
9376
9383
  def merge_gemfile_template_policy(content, facts:, template_content: nil, preserve_self_word_entries: false)
9377
9384
  package_name = facts.dig(:package, :name).to_s if facts
9378
- removable_gems = ["appraisal"]
9385
+ removable_gems = ["appraisal", *PROHIBITED_GEMFILE_DEPENDENCIES]
9379
9386
  removable_gems << package_name unless package_name.to_s.empty?
9380
9387
  removable_gems.concat(package_runtime_dependency_names(facts))
9381
9388
  removable_gems << "version_gem" unless version_gem_enabled?(facts)
@@ -10686,6 +10693,11 @@ module Kettle
10686
10693
  template_declares_version_gem: gemspec_dependency_names(template_content).include?("version_gem")
10687
10694
  )
10688
10695
  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.
@@ -11823,7 +11835,7 @@ module Kettle
11823
11835
  enforce_gemspec_dependency_minimum_requirements(normalized, receiver: template_receiver)
11824
11836
  end
11825
11837
  destination_dependencies = destination_dependencies.reject do |key, _source|
11826
- retired_gemspec_development_dependency_key?(key)
11838
+ excluded_gemspec_dependency_key?(key)
11827
11839
  end
11828
11840
  return template_content if destination_dependencies.empty?
11829
11841
 
@@ -12223,9 +12235,11 @@ module Kettle
12223
12235
  [record.fetch(:kind), record.fetch(:name)]
12224
12236
  end
12225
12237
 
12226
- def retired_gemspec_development_dependency_key?(key)
12238
+ def excluded_gemspec_dependency_key?(key)
12239
+ return true if PROHIBITED_GEMSPEC_DEPENDENCIES.include?(key.last)
12240
+
12227
12241
  key.first == "add_development_dependency" &&
12228
- RETIRED_GEMSPEC_DEVELOPMENT_DEPENDENCIES.include?(key.last)
12242
+ EXTERNALIZED_GEMSPEC_DEVELOPMENT_DEPENDENCIES.include?(key.last)
12229
12243
  end
12230
12244
 
12231
12245
  def gemspec_dependency_source_newer?(candidate_source, current_source, receiver:)
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.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -593,6 +593,26 @@ dependencies:
593
593
  - - "~>"
594
594
  - !ruby/object:Gem::Version
595
595
  version: 0.9.3
596
+ - !ruby/object:Gem::Dependency
597
+ name: json
598
+ requirement: !ruby/object:Gem::Requirement
599
+ requirements:
600
+ - - "~>"
601
+ - !ruby/object:Gem::Version
602
+ version: '2.0'
603
+ - - ">="
604
+ - !ruby/object:Gem::Version
605
+ version: 2.21.2
606
+ type: :development
607
+ prerelease: false
608
+ version_requirements: !ruby/object:Gem::Requirement
609
+ requirements:
610
+ - - "~>"
611
+ - !ruby/object:Gem::Version
612
+ version: '2.0'
613
+ - - ">="
614
+ - !ruby/object:Gem::Version
615
+ version: 2.21.2
596
616
  - !ruby/object:Gem::Dependency
597
617
  name: rake
598
618
  requirement: !ruby/object:Gem::Requirement
@@ -976,10 +996,10 @@ licenses:
976
996
  - PolyForm-Small-Business-1.0.0
977
997
  metadata:
978
998
  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
999
+ source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.23
1000
+ changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.23/CHANGELOG.md
981
1001
  bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
982
- documentation_uri: https://www.rubydoc.info/gems/kettle-jem/7.1.22
1002
+ documentation_uri: https://www.rubydoc.info/gems/kettle-jem/7.1.23
983
1003
  funding_uri: https://github.com/sponsors/pboling
984
1004
  wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
985
1005
  news_uri: https://www.railsbling.com/tags/kettle-jem
metadata.gz.sig CHANGED
Binary file