kettle-jem 7.1.29 → 7.1.30

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +38 -1
  4. data/README.md +1 -129
  5. data/lib/kettle/jem/templates/.devcontainer/devcontainer.json.example +1 -1
  6. data/lib/kettle/jem/templates/.github/workflows/coverage.yml.example +23 -1
  7. data/lib/kettle/jem/templates/.github/workflows/current.yml.example +5 -1
  8. data/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example +3 -0
  9. data/lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example +3 -0
  10. data/lib/kettle/jem/templates/.github/workflows/heads.yml.example +13 -3
  11. data/lib/kettle/jem/templates/.github/workflows/jruby-10.0.yml.example +14 -1
  12. data/lib/kettle/jem/templates/.github/workflows/jruby-9.1.yml.example +14 -1
  13. data/lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example +14 -1
  14. data/lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example +14 -1
  15. data/lib/kettle/jem/templates/.github/workflows/jruby-9.4.yml.example +14 -1
  16. data/lib/kettle/jem/templates/.github/workflows/jruby.yml.example +14 -1
  17. data/lib/kettle/jem/templates/.github/workflows/locked_deps.yml.example +1 -0
  18. data/lib/kettle/jem/templates/.github/workflows/ruby-2.3.yml.example +7 -1
  19. data/lib/kettle/jem/templates/.github/workflows/ruby-2.4.yml.example +7 -1
  20. data/lib/kettle/jem/templates/.github/workflows/ruby-2.5.yml.example +7 -1
  21. data/lib/kettle/jem/templates/.github/workflows/ruby-2.6.yml.example +7 -1
  22. data/lib/kettle/jem/templates/.github/workflows/ruby-2.7.yml.example +7 -1
  23. data/lib/kettle/jem/templates/.github/workflows/ruby-3.0.yml.example +8 -2
  24. data/lib/kettle/jem/templates/.github/workflows/ruby-3.1.yml.example +7 -1
  25. data/lib/kettle/jem/templates/.github/workflows/ruby-3.2.yml.example +7 -1
  26. data/lib/kettle/jem/templates/.github/workflows/ruby-3.3.yml.example +7 -1
  27. data/lib/kettle/jem/templates/.github/workflows/ruby-3.4.yml.example +7 -1
  28. data/lib/kettle/jem/templates/.github/workflows/style.yml.example +4 -1
  29. data/lib/kettle/jem/templates/.github/workflows/templating.yml.example +4 -1
  30. data/lib/kettle/jem/templates/.github/workflows/truffle.yml.example +14 -1
  31. data/lib/kettle/jem/templates/.github/workflows/truffleruby-22.3.yml.example +14 -1
  32. data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.1.yml.example +10 -0
  33. data/lib/kettle/jem/templates/.github/workflows/truffleruby-24.2.yml.example +14 -1
  34. data/lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example +14 -1
  35. data/lib/kettle/jem/templates/.github/workflows/truffleruby-33.0.yml.example +14 -1
  36. data/lib/kettle/jem/templates/.github/workflows/unlocked_deps.yml.example +5 -1
  37. data/lib/kettle/jem/templates/gem.gemspec.example +3 -3
  38. data/lib/kettle/jem/templates/shim/gem.gemspec.example +2 -2
  39. data/lib/kettle/jem/version.rb +1 -1
  40. data/lib/kettle/jem.rb +47 -7
  41. data.tar.gz.sig +0 -0
  42. metadata +8 -8
  43. metadata.gz.sig +0 -0
data/lib/kettle/jem.rb CHANGED
@@ -54,7 +54,7 @@ module Kettle
54
54
  MANAGED_BLOCK_OPEN = "# <<kettle-jem:generated>> do not edit below this line"
55
55
  MANAGED_BLOCK_CLOSE = "# <</kettle-jem:generated>>"
56
56
  GEMSPEC_DEPENDENCY_MINIMUM_REQUIREMENTS = {
57
- "rspec-stubbed_env" => ">= 1.0.6"
57
+ "rspec-stubbed_env" => ">= 1.0.17"
58
58
  }.freeze
59
59
  # Template dependency transitions are location-independent. Prepare finds
60
60
  # declarations in the destination and reconciles their complete requirement
@@ -62,10 +62,10 @@ module Kettle
62
62
  TEMPLATE_MANAGED_DEPENDENCIES = [
63
63
  {name: PACKAGE_NAME, requirements: ["~> 7.1", ">= 7.1.28"], bootstrap: false},
64
64
  {name: "nomono", requirements: ["~> 1.1", ">= 1.1.7"], bootstrap: true},
65
- {name: "kettle-dev", requirements: ["~> 3.1", ">= 3.1.11"], bootstrap: true},
65
+ {name: "kettle-dev", requirements: ["~> 3.1", ">= 3.1.13"], bootstrap: true},
66
66
  {
67
67
  name: "kettle-changelog",
68
- requirements: ["~> 1.0", ">= 1.0.9"],
68
+ requirements: ["~> 1.0", ">= 1.0.10"],
69
69
  bootstrap: true,
70
70
  ruby_requirement: ">= 4.0.0"
71
71
  }
@@ -5118,15 +5118,15 @@ module Kettle
5118
5118
  [
5119
5119
  {name: "appraisal2", source: %(gem "appraisal2", "~> 3.2", ">= 3.2.5"\n)},
5120
5120
  {name: "bundler-audit", source: %(gem "bundler-audit", "~> 0.9.3"\n)},
5121
- {name: "kettle-dev", source: %(gem "kettle-dev", "~> 3.1", ">= 3.1.11"\n)},
5121
+ {name: "kettle-dev", source: %(gem "kettle-dev", "~> 3.1", ">= 3.1.13"\n)},
5122
5122
  {name: "kettle-drift", source: %(gem "kettle-drift", "~> 1.0", ">= 1.0.16"\n)},
5123
5123
  {name: "kettle-family", source: %(gem "kettle-family", "~> 1.3", ">= 1.3.10"\n)},
5124
5124
  {name: PACKAGE_NAME, source: kettle_jem_dependency_source},
5125
- {name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.24"\n)},
5125
+ {name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.25"\n)},
5126
5126
  {name: "rake", source: %(gem "rake", "~> 13.0"\n)},
5127
5127
  {name: "rspec", source: %(gem "rspec", "~> 3.0"\n)},
5128
5128
  {name: "stone_checksums", source: %(gem "stone_checksums", "~> 1.0", ">= 1.0.9"\n)},
5129
- {name: "turbo_tests2", source: %(gem "turbo_tests2", "~> 3.2", ">= 3.2.14"\n)}
5129
+ {name: "turbo_tests2", source: %(gem "turbo_tests2", "~> 4.0", ">= 4.0.0"\n)}
5130
5130
  ].freeze
5131
5131
  end
5132
5132
 
@@ -9565,6 +9565,7 @@ module Kettle
9565
9565
  # Both conflict sources share the same dependency_conflicts.resolve list,
9566
9566
  # decision-matching, and review gate.
9567
9567
  def validate_modular_dependency_conflicts!(project_root, recipe_reports)
9568
+ validate_stale_modular_dependency_conflicts!(project_root)
9568
9569
  config = kettle_jem_config(project_root)
9569
9570
  conflicts = modular_dependency_conflicts(project_root, recipe_reports) +
9570
9571
  engine_dependency_conflicts(project_root, recipe_reports, config)
@@ -9618,6 +9619,45 @@ module Kettle
9618
9619
  "keep_both is valid only when the direct and modular requirements overlap."
9619
9620
  end
9620
9621
 
9622
+ # A remove_modular_gem / remove_x_std_lib_eval / remove_direct_gem entry
9623
+ # that cites a gemspec as its direct side claims the gemspec declares the
9624
+ # gem ("the gemspec owns the dependency"). When the gemspec has since
9625
+ # stopped declaring it, the entry is stale: every templating run strips a
9626
+ # modular declaration the template would otherwise maintain, and downstream
9627
+ # bundles quietly lose the gem (observed: appraisal2-rubocop failing with
9628
+ # "Unable to find gem rubocop-lts" because .rubocop.yml inherit_gem needed
9629
+ # a gem the conflict entry had been deleting). These are warnings, not
9630
+ # errors — some stale entries are intentional deactivations (e.g. a member
9631
+ # deliberately disabling the yard-junk task) — but each one deserves a
9632
+ # human look, because the recorded reason no longer describes reality.
9633
+ def validate_stale_modular_dependency_conflicts!(project_root)
9634
+ config = kettle_jem_config(project_root)
9635
+ decisions = modular_dependency_conflict_decisions(config)
9636
+ return if decisions.empty?
9637
+
9638
+ gemspec_paths = Dir.glob(File.join(project_root.to_s, "*.gemspec"))
9639
+ gemspec_content = gemspec_paths.filter_map { |path| File.read(path) if File.readable?(path) }.join("\n")
9640
+ return if gemspec_paths.empty?
9641
+
9642
+ stale = decisions.select do |decision|
9643
+ next false unless decision.fetch("direct", "").end_with?(".gemspec")
9644
+ next false unless %w[remove_modular_gem remove_x_std_lib_eval].include?(decision.fetch("action"))
9645
+
9646
+ gem_name = decision.fetch("gem")
9647
+ !gemspec_dependency_records(gemspec_content).any? { |record| record.fetch(:name) == gem_name }
9648
+ end
9649
+ return if stale.empty?
9650
+
9651
+ details = stale.map do |decision|
9652
+ "#{decision.fetch("gem")} (#{decision.fetch("direct")} vs #{decision.fetch("modular")})"
9653
+ end.join(", ")
9654
+ warn(
9655
+ "kettle-jem: stale dependency_conflicts entries — the gemspec no longer declares: #{details}. " \
9656
+ "If the removal is intentional, update the reason in #{KETTLE_CONFIG_PATH} to say so; " \
9657
+ "otherwise remove the entry so the template maintains the modular declaration."
9658
+ )
9659
+ end
9660
+
9621
9661
  # Paths of a project's own directly-authored dependency manifests: the
9622
9662
  # root Gemfile plus any gemspec, whether already on disk or only present
9623
9663
  # as a pending recipe report (not yet written) for this templating run.
@@ -20716,7 +20756,7 @@ module Kettle
20716
20756
  "actions/checkout" => "actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1",
20717
20757
  "actions/cache" => "actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0",
20718
20758
  "appraisal-rb/setup-ruby-flash" => "appraisal-rb/setup-ruby-flash@6f8ad36ba7488db591541483afb5464d01e8861b # v2.14",
20719
- "ruby/setup-ruby" => "ruby/setup-ruby@e81a8fa391b11a595c1b7ed84177cc0fe02faf83 # v1.328.0",
20759
+ "ruby/setup-ruby" => "ruby/setup-ruby@651ff0d62c5c79bed6d53ec518387aae20e72c1a # v1.329.0",
20720
20760
  "coverallsapp/github-action" => "coverallsapp/github-action@8d6379e14d29928660c4ba802d8e85393440b329 # v2.3.8",
20721
20761
  "qltysh/qlty-action/coverage" => "qltysh/qlty-action/coverage@c9b09987143d1e4ac955f4803c7bea742102feb5 # v2.4.0",
20722
20762
  "codecov/codecov-action" => "codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1",
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.29
4
+ version: 7.1.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -656,7 +656,7 @@ dependencies:
656
656
  version: '2.0'
657
657
  - - ">="
658
658
  - !ruby/object:Gem::Version
659
- version: 2.0.24
659
+ version: 2.0.25
660
660
  type: :development
661
661
  prerelease: false
662
662
  version_requirements: !ruby/object:Gem::Requirement
@@ -666,7 +666,7 @@ dependencies:
666
666
  version: '2.0'
667
667
  - - ">="
668
668
  - !ruby/object:Gem::Version
669
- version: 2.0.24
669
+ version: 2.0.25
670
670
  - !ruby/object:Gem::Dependency
671
671
  name: turbo_tests2
672
672
  requirement: !ruby/object:Gem::Requirement
@@ -676,7 +676,7 @@ dependencies:
676
676
  version: '3.2'
677
677
  - - ">="
678
678
  - !ruby/object:Gem::Version
679
- version: 3.2.14
679
+ version: 3.2.16
680
680
  type: :development
681
681
  prerelease: false
682
682
  version_requirements: !ruby/object:Gem::Requirement
@@ -686,7 +686,7 @@ dependencies:
686
686
  version: '3.2'
687
687
  - - ">="
688
688
  - !ruby/object:Gem::Version
689
- version: 3.2.14
689
+ version: 3.2.16
690
690
  - !ruby/object:Gem::Dependency
691
691
  name: ruby-progressbar
692
692
  requirement: !ruby/object:Gem::Requirement
@@ -977,10 +977,10 @@ licenses:
977
977
  - PolyForm-Small-Business-1.0.0
978
978
  metadata:
979
979
  homepage_uri: https://structuredmerge.org
980
- source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.29
981
- changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.29/CHANGELOG.md
980
+ source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.30
981
+ changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.30/CHANGELOG.md
982
982
  bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
983
- documentation_uri: https://www.rubydoc.info/gems/kettle-jem/7.1.29
983
+ documentation_uri: https://www.rubydoc.info/gems/kettle-jem/7.1.30
984
984
  funding_uri: https://github.com/sponsors/pboling
985
985
  wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
986
986
  news_uri: https://www.railsbling.com/tags/kettle-jem
metadata.gz.sig CHANGED
Binary file