kettle-jem 7.1.23 → 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: 8b44bfaa2d3dc87b533330ef926a348487a57912fcd4f5c3c75f2f39b5f3d6f0
4
- data.tar.gz: a42faa5fb58ce8fc630dacebbd9c7cabd75641791236fb405a4471accf7e0b7b
3
+ metadata.gz: 5e183814ce90643b2d4e1ba747c57730aec7a1fe2c4a07721495a3fc22cdb0b5
4
+ data.tar.gz: 9d0f017241c7ba8bb6061eb9408dd2f61145349219f518a04a6023a98900d75f
5
5
  SHA512:
6
- metadata.gz: 0f692b668c282c7657c5af5bfb3de195d996d2f9eda582b8bb55ee39ed9d31a863b66fd17b82b75925ed949092336d5e74a66539a7d4a9efd91974b0ec4c5bb3
7
- data.tar.gz: 0f7d11313e632476917ee8b3a4afd492998d82f9bd8c8535a6e195cb5185c8caa167f5fd2ac295cb0e0f28a4d7e86443b47e054faba8488825213185d6206377
6
+ metadata.gz: 1dc4f69e46b0819d491b897ee6fa078fbe44f6eee3ae8b131121c2a3f997610a76c86acbdc9d65a1645ea67540663e2daab17a2d0ba7dee2ba769878364f8ddc
7
+ data.tar.gz: bd375240be6f8bebfe334e3138a74dfc7d5f32d4c77747f90745feb2527f086e4b4a49e324f78088b48e400e243c387e43d3fb241cbdfe4b594792874061ff47
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,26 @@ 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
+
33
53
  ## [7.1.23] - 2026-09-07
34
54
 
35
55
  - TAG: [v7.1.23][7.1.23t]
@@ -1950,7 +1970,9 @@ Please file a bug if you notice a violation of semantic versioning.
1950
1970
  - Released kettle-jem as part of the initial StructuredMerge Ruby 7.0.0 gem set.
1951
1971
  - Included packaged templates and parser-backed merge support for Ruby gem templating.
1952
1972
 
1953
- [Unreleased]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.23...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
1954
1976
  [7.1.23]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.22...v7.1.23
1955
1977
  [7.1.23t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.23
1956
1978
  [7.1.22]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.21...v7.1.22
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.013-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
 
@@ -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
@@ -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.23"
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"
@@ -1422,7 +1423,7 @@ module Kettle
1422
1423
  end
1423
1424
  end
1424
1425
  end
1425
- README_DEFAULT_PRESERVE_SECTIONS = ["synopsis", "configuration", "basic usage"].freeze
1426
+ README_DEFAULT_PRESERVE_SECTIONS = ["synopsis", "configuration", "basic usage", "advanced usage"].freeze
1426
1427
  README_DEFAULT_PRESERVE_PATTERNS = ["note:*"].freeze
1427
1428
  README_CODETRIAGE_BADGE = "[![Open Source Helpers][👽oss-helpi]][👽oss-help]"
1428
1429
  README_CODETRIAGE_LINK_LABELS = ["👽oss-help", "👽oss-helpi"].freeze
@@ -5466,7 +5467,7 @@ module Kettle
5466
5467
  {name: "bundler-audit", source: %(gem "bundler-audit", "~> 0.9.3"\n)},
5467
5468
  {name: "kettle-dev", source: %(gem "kettle-dev", "~> 3.0", ">= 3.0.33"\n)},
5468
5469
  {name: "kettle-drift", source: %(gem "kettle-drift", "~> 1.0", ">= 1.0.13"\n)},
5469
- {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)},
5470
5471
  {name: PACKAGE_NAME, source: kettle_jem_dependency_source},
5471
5472
  {name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.21"\n)},
5472
5473
  {name: "rake", source: %(gem "rake", "~> 13.0"\n)},
@@ -7977,7 +7978,7 @@ module Kettle
7977
7978
  when :markdown
7978
7979
  return merge_changelog_template_source(template_content, destination_content, facts: facts) if recipe.fetch(:target_path) == "CHANGELOG.md"
7979
7980
 
7980
- return template_content
7981
+ merge_result = Markdown::Merge.merge_markdown(template_content, destination_content, "markdown")
7981
7982
  when :dotenv
7982
7983
  merge_result = merge_dotenv_template_source(template_content, destination_content, recipe)
7983
7984
  when :rbs
@@ -10692,7 +10693,6 @@ module Kettle
10692
10693
  receiver: template_receiver,
10693
10694
  template_declares_version_gem: gemspec_dependency_names(template_content).include?("version_gem")
10694
10695
  )
10695
- merged = remove_gemspec_version_gem_dependency_when_non_default_entrypoint(merged, facts, receiver: template_receiver)
10696
10696
  merged = remove_gemspec_dependency_lines(
10697
10697
  merged,
10698
10698
  receiver: template_receiver,
@@ -11086,13 +11086,6 @@ module Kettle
11086
11086
  facts.to_h.dig(:version_gem, :enabled) == false
11087
11087
  end
11088
11088
 
11089
- def remove_gemspec_version_gem_dependency_when_non_default_entrypoint(content, facts, receiver:)
11090
- return content unless facts.to_h.dig(:version_gem, :non_default_entrypoint)
11091
-
11092
- cleaned = remove_gemspec_dependency_lines(content, receiver: receiver, names: ["version_gem"], runtime_only: true)
11093
- remove_ruby_comment_lines_containing(cleaned, "version_gem")
11094
- end
11095
-
11096
11089
  def remove_gemspec_assignment(content, receiver:, field:)
11097
11090
  records_by_line = gemspec_assignment_records(content, receiver: receiver)
11098
11091
  .select { |record| record.fetch(:field) == field.to_s }
@@ -15502,7 +15495,7 @@ module Kettle
15502
15495
  def main_gemfile_kettle_family_gem(package_name)
15503
15496
  return "" if package_name.to_s == "kettle-family"
15504
15497
 
15505
- %(gem "kettle-family", "~> 1.2", ">= 1.2.95"\n)
15498
+ %(gem "kettle-family", "~> 1.2", ">= 1.2.96"\n)
15506
15499
  end
15507
15500
 
15508
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.23
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
@@ -996,10 +1016,10 @@ licenses:
996
1016
  - PolyForm-Small-Business-1.0.0
997
1017
  metadata:
998
1018
  homepage_uri: https://structuredmerge.org
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
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
1001
1021
  bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
1002
- documentation_uri: https://www.rubydoc.info/gems/kettle-jem/7.1.23
1022
+ documentation_uri: https://www.rubydoc.info/gems/kettle-jem/7.1.24
1003
1023
  funding_uri: https://github.com/sponsors/pboling
1004
1024
  wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
1005
1025
  news_uri: https://www.railsbling.com/tags/kettle-jem
metadata.gz.sig CHANGED
Binary file